Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Frage zu init

Frage Linux

Mitglied: cisab8888

cisab8888 (Level 1) - Jetzt verbinden

06.05.2012 um 17:28 Uhr, 2454 Aufrufe, 3 Kommentare

Also ich lese gerade ein Buch über LPI und hab dazu eine frage:

Der Autor stellt die Frage, warum ein und dasselbe Skript, durch zwei verschiedene Softlinks aktiviert wurde, einmal einen Deamon startet und dann wieder beendet:

K04apache2
S18apache2

Im Buch steht, dass das Skript durch Abfrage einer Variable ($0) feststellen kann ob es durch einen Dateinamen oder durch Aufruf eines Links gestartet wurde, und mit Verzweigungen innerhalb des Programms reagieren kann.

Meine Frage: Wie stellt das Skript fest, ob es eine Dateiname oder ein Link ist?

lg und danke!
Mitglied: broecker
06.05.2012 um 18:16 Uhr
Das tut es gar nicht so wie von Ihnen beschrieben, init (der Startdaemon) startet alle S-Skripte in z.B. Runlevel 5 der Reihe nach (S01...,...,S99...): /etc/rc5.d/S... und gibt ihnen als Parameter "start" mit, in den Skripten sehen Sie die betreffende case-Anweisung, mit der dann nur (z.B) der Start-Teil ausgeführt wird, beim Runterfahren entsprechend der K-Teil ("kill") mit Parameter "stop" - das ist alles, ob also ein Link in rc5.d und/oder init.d liegt oder das Skript selbst reinkopiert wurde ist völlig unerheblich.
HG
Mark
Bitte warten ..
Mitglied: 64748
06.05.2012 um 18:16 Uhr
Hallo,

die Variable $0 ist der Name des aufgerufenen Programms/Skripts. Beispiel:
#!/bin/bash 
echo $0
dieses Srikpt(chen) nenne ich fork.sh, mache es ausführbar (chmod 755 fork.sh) und mache folgendes
markus@samsung:~/Programmierung$ ./fork.sh  
./fork.sh 
markus@samsung:~/Programmierung$ ln -s fork.sh forklink.sh 
markus@samsung:~/Programmierung$ ./forklink.sh  
./forklink.sh 
markus@samsung:~/Programmierung$ 
Über die Variable $0 kann also festgestellt werden, wie der Aufruf erfolgt ist.
Außerdem solltest Du Dich mit dem Begriff "fork" vertraut machen Auf diese Weise werden Prozesse in Unix erzeugt. Lese die Manpage zu fork, außerdem hier http://de.wikipedia.org/wiki/Fork_(Unix) und hier http://www.linuxquestions.org/questions/programming-9/fork-variable-val ...
Bin mir allerdings nicht sicher, ob das Deine Frage beantwortet, dazu müsste ich mich selbst (mal wieder) in die Materie einarbeiten.

Markus
Bitte warten ..
Mitglied: mak-xxl
06.05.2012 um 19:10 Uhr
Moin cisab8888,

Vorbemerkung:
in einem Shell-Script ist die Variable '$0' immer mit dem Namen der ausgeführten (also rufenden) Datei belegt. Heißt also das Script 'test', so hat die Variable den Wert './test'.
Wird nun neben dem Script 'test' im gleichen Verzeichnis (i.e. 'ls -s test Test') ein Link '[@]Test' angelegt und ausgeführt, so hat die Variable den Wert './Test'. Liegt der Link in einem anderen Verzeichnis und heißt etwa auch 'test' (also so wie das Script), dann kommt es darauf an: Wird der Link mit vollem Pfad gerufen (i.e. '/home/test'), so ist dieser Pfad auch in '$0' zu finden. Wird der Link nur mittels Dateinamen gerufen, enthält '$0' wieder nur den Namen des Scriptes ('./test') - also kein Unterschied feststellbar. Abhilfe schafft dann entweder ein im Link gespeicherter Parameter, der von der Shell in die Variable '$1' gepackt wird - das Script kann den entsprechend verwerten. Aber das ist schon wieder eine andere Baustelle ... oder, ja endlich, eine

mögliche direkte Lösung (Feststellung, ob Link- oder Direktaufruf):

Wenn im Script die Ausgabe eines `ln -l $0` ausgewertet wird, sieht das so aus (unwichtiges weggelassen):

- per Link gerufen: '[diverse Ausgaben] ... /home/user/test -> /test'
- direkt gerufen: '[diverse Ausgaben] ... ./test'

Und beispielsweise anhand dieses Verweises (->) kann man entsprechend reagieren ...

[Edit]
Irgendwie hat dieser Post eine knappe Stunde bis zur Anzeige gebraucht, ich hatte ihn schon abgeschrieben ... Was sich jetzt mit den anderen Posts überschneidet - Entschuldigung, keine Absicht, als ich auf 'Senden' geklickt habe, war da noch nix ...

Und noch eine Anmerkung: Gerade wenn es um den Starten und Stoppen von Prozesse/Diensten geht (nicht nur des Indianers), ist es so, wie in der ersten Antwort beschrieben oder, ohne Dämonen: Der Status irgendeines Dienstes wird abgefragt und darauf reagiert, fertig.
Das Beispiel im Buch ist zwar eine Fingerübung für Shell-Anfänger, aber in dem Zusammenhang, nun ja, ..... hoffentlich nicht allzu irreführend.
[/Edit]


Euch allen einen schönen Sonntagabend, eine friedliche und erfolgreiche Woche, freundliche Grüße von der Insel - Mario
Bitte warten ..
Ähnliche Inhalte
DSL, VDSL
Zyxel IES5005G DSL-AM Line Card State Init
gelöst Frage von Herbrich19DSL, VDSL2 Kommentare

Hallo, Ich habe das Problem das ich meine VDSL Linecards nicht zum laufen bekomme. Es ist immer noch ein ...

Windows 10
Frage zur Cortona
Frage von avitasWindows 101 Kommentar

Lassen sich damit auch Texte in Word diktieren oder geht das nicht, falls ja, was muss ich da einstellen ...

Administrator.de Feedback
Fragen werden nicht angezeigt?
gelöst Frage von LochkartenstanzerAdministrator.de Feedback8 Kommentare

Moin, Mir ist aufgefallen, das in der Ansicht "Neue Fragen" meine beiden Fragen zum feedback nicht angezeigt werden: Bug ...

Backup
Fragen zu VEEAM
gelöst Frage von HenereBackup4 Kommentare

Hallo, nachdem mir VEEAM hier ans Herz gelegt wurde, kann mir doch bestimmt auch jemand ein paar Fragen dazu ...

Neue Wissensbeiträge
Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Microsoft Office

Outlook 2016 - Beim Weiterleiten keine PDF Anhänge mehr - KB4011626 entfernen

Erfahrungsbericht von Deepsys vor 1 TagMicrosoft Office3 Kommentare

Wenn ihr feststellt das ihr beim Weiterleiten von E-Mails keine PDF Anhänge mehr versendent, dann dankt Microsoft. Diese tolle ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...