Deamons Testen und Starten
Markus
- perl
Hi @all,
ich würde gerne Übrprüfen ob alle Deamons die sich in /etc/init.d/rc3.d/ gestartet werden müssen, gestartet sind.
Ich hab das Verzeichniss ausgelesen, und mir rcSKRIPTNAME zusammengebastelt die durch eine for Schleife ausgegeben werden.
Jetzt würde ich gerne Testen ob die Skripte gestartet sind, falls nicht, würde ich diese gerne Starten.
Hat jemand eine Ahnung wie ich das in mein Skript einbauen könnte?
@services = <$ServicesDirectory/S*>;
foreach $services (@services){
$services=~s/$ServicesDirectory\///;
next if "$services" =~ "S[0-9]*hwscan" ||
"$services" =~ "S[0-9]*learnvipa" ||
"$services" =~ "S[0-9]*fbset" ||
"$services" =~ "S[0-9]*rpmconfigcheck" ||
"$services" =~ "S[0-9]*smbfs" ||
"$services" =~ "S[0-9]*nfs" ||
"$services" =~ "S[0-9]*nfsboot" ||
"$services" =~ "S[0-9]*splash_early" ||
"$services" =~ "S[0-9]*running-kernel" ||
"$services" =~ "S[0-9]*kbd" ||
"$services" =~ "S[0-9]*splash" ||
"$services" =~ "S[0-9]*custstart";
$services=~s/S[0-9]*/rc/;
### Wie kann ich die Deamons Testen und gegeben fallsstarten? ###
print "$services\n";
}
hallo,
ich würde gerne Übrprüfen ob alle Deamons die sich in /etc/init.d/rc3.d/ gestartet werden müssen, gestartet sind.
Der Pfad sieht verdächtig nach einer SUSE aus - bei solchen Fragen solltest du bitte immer die Distribution angeben, da der Inhalt von /etc/init.d in verschiedenen Distributionen auch unterschiedlich ausfällt.
Ich hab das Verzeichniss ausgelesen, und mir rcSKRIPTNAME zusammengebastelt die durch eine for Schleife ausgegeben werden.
So ganz verstehe ich nicht, warum du dir diese Mühe machst. Außerdem wird es dir nichts nutzen, auf /etc/init.d/rc3.d zuzugreifen. Dort liegen nur die Scripts, aber keine Informationen darüber, ob die zugehörigen daemons gestartet sind - wovon du aber eigentlich ausgehen kannst. Ein gestarteter Daemon hat einen Prozeß mit einer PID, also müßtest du die vorhandenen Prozesse auflisten. Das geht mit
fuser -v /
für die Systemwurzel, alternartiv kannst du auch lsof benutzen. Wenn es sein muß, könntest du die Ausgaben vermutlich mit deinem Script abfangen und einzeln darstellen, probiert habe ich sowas noch nicht.
Andrerseits: die SUSE bringt YaST mit. In YaST gibt es den sogenannten Runleveleditor, der dir genau die gewünschten Informationen hübsch grafisch aufbereitet anzeigt. Nimm doch den, wenn du dich informieren willst.
Eine Frage am Rand: warum willst du das gerade für runlevel 3 wissen?
Grüße aus Berlin
Christoph S.
Hallo,
danke erst mal für die Antworten.
Es handelt sich hier um ein SLES9 System (sorry, werde ich nächstes mal gleich erwähnen)
Also ich hab ca. 40 Systeme die Verwaletet werden müssen.
Ich möchte ein Skript schreiben, der bei Knopfdruck (auf einer HTML-Seite) mir anzeigt wird, welche Skripte gerade gestartet sind und welche nicht.
Da jedes System andere Skripte hat die gestartet werden müssen, habe ich das Dynamisch gestaltet und lese lese deswegen die /etc/init.d/rc3.d aus. Für unser betrieb ist es wichtig, dass die Dienste die in der /etc/init.d/rc3.d eingetragen sind, auch alle laufen, dass ist der Grund .
Jetzt möchte ich wissen, wie ich diese RC-Skripte über Perl abfragen kann, so das ich sehen kann, ob diese gestartet sind oder nicht?!
Ich hab schon sowas ähnliches in der bash gelöst
if $($RC_DIENST status > /dev/null 2> /dev/null) ; then
echo "$RC_DIENST OK"
fi
Die Einzigste möglichkeit die mir jetzt gerade einfällt, ist den Bash-Code in dem Perl-Skript abzusetzen, wobei ich das nicht so gut finde, würde das gerne ganz über perl lösen.
Habt ihr eine Ahnung wie ich das machen kann?
hallo,
Ich möchte ein Skript schreiben, der bei Knopfdruck (auf einer HTML-Seite) mir anzeigt wird, welche Skripte gerade gestartet sind und welche nicht.
Also ein CGI-Script.
Ich hab schon sowas ähnliches in der bash gelöst
if $($RC_DIENST status > /dev/null 2> /dev/null) ; then
echo "$RC_DIENST OK"
fi
> Die Einzigste möglichkeit die mir jetzt gerade einfällt, ist den Bash-Code in dem Perl-Skript abzusetzen
Das ist gar nicht nötig. Dein lokaler Webserver sollte in der Lage sein, auch ein Shellscript als CGI-Anwendung zu starten. Beim Apache kann es bereits ausreichen, dazu eine Zeile
AddHandler cgi-script .sh
in der httpd.conf zu aktivieren.
Grüße aus Berlin
Christoph S.
--
[Visitenkarte](http://community.de.selfhtml.org/visitenkarten/view.php?key=26)
ss:| zu:) ls:& fo:) va:) sh:| rl:|
Hallo,
die aktuell laufenden Prozesse bekommst du zum Beispiel mit folgendem Kommando:
ps -eo %c
(Kommandos aus einem Script aufrufen: http://de.selfhtml.org/perl/funktionen/systemaufrufe.htm#qx)
Gruß aus Berlin!
eddi