killproc und pidofproc auf linux
Ich habe ein script, welches verwendet killproc und procofpid Befehle und führt problemlos auf einem 64bit suse. Aber wenn ich ausgeführt das script auf 32-bit-redhat habe ich gefunden, dass die oben genannten Befehle nicht existieren.
Habe ich nicht einen 32bit 64bit Suse und redhat Maschinen zu testen, mein Skript.
Ist meine Vermutung richtig, dass auf 64bit redhat die oben genannten Befehle sollten vorhanden sein?
Oder sind die oben genannten Befehle spezifisch für Suse und redhat?
Dank
- Nein, aber
kill
undpidof
sind, die auch tragbar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Befehle sind kaum tragbar. Eigentlich ist das erste mal höre ich über Sie - aber ich denke, dein problem ist die Arbeit mit dem Prozess, durch den Namen, nicht die pid.
Überprüfen Sie die
man pgrep
oderman pkill
- Sie sind etwas bisschen mehr tragbar. Sie sind Teil derprocps
- Paket (wops
undtop
kommt) zur Verfügung und sollte auf allen Linux-Varianten. Sie sind auch auf Solaris.killproc wird in redhat enterprise linux 5.4 als Teil von /etc/init.d/Funktionen
wenn Sie müssen es nur tun
. /etc/init.d/Funktionen
in Ihrem Skript zum laden der shell-Funktionen, die Ihr wahrscheinlich in anderen Versionen von redhat, aber das ist der einzige, den ich zur hand im moment
Diese Befehle sind definiert als Teil der Linux Standards Base (LSB), wie bereits von @AndreKR.
Jedoch auf manchen Systemen wie Redhat (und wahrscheinlich SUSE), je nachdem die Pakete installiert sind, werden diese Funktionen können nicht definiert werden in der angegebenen Position durch den LSB, die
/lib/lsb/init-functions
. Sondern Sie definiert, innerhalb/etc/init.d/functions
. Darüber hinaus In einigen Versionen, in dem sich die Redhat-Variante von/etc/init.d/functions
fehlt die LSB-definierte Funktionstart_daemon
. Wenn Sie fügen Sie den folgenden Codeausschnitt oben auf dein script, es sollte portabel sein die meisten Distributionen/Installationen:Redhat (and probably SUSE) does not define them in the location specified by the LSB
ist falsch. Das meta-Paketlsb-core-noarch
stellt die Datei/lib/lsb/init-functions
über LSB-konformen Distributionen. Verwenden Sie einfach die die Verteilung der Paket-manager zu installieren.lsb-core-noarch
Paket. FWIW, auf der Fedora-24, es istredhat-lsb-core
. Das script-snippet ist noch nützlich, wenn du dir nicht sicher bist, ob runtime-Umgebungen haben das Paket installiert ist oder nicht, und Sie haben keine Möglichkeit oder Lust zu zwingen, Ihren Einbau.provides
für dieredhat-lsb-core
- Paket: Sie werden bemerken, dass esprovides
eine Fähigkeitlsb-core-noarch
was ist einmeta package
, wie ich bereits in meinem Kommentar (rpmfind info).rpmfind
ist eine externe Website, die erscheint, um out-of-date Informationen. Siehe hier: apps.fedoraproject.org/packages/redhat-lsb-core/overview.redhat-lsb-core
ist eigentlich ein unterpackage von der meta-Paketredhat-lsb
, und er "Bietet"lsb-noarch
, das ist nicht ein Paket, sondern eine Fähigkeit.Provides:
Abschnitt des Pakets, so werde ich den link zu den spec-Datei bei pkgs.fedoraproject.org/cgit/rpms/redhat-lsb.git/tree/... : bitte beachten Sie dieProvides:
unter%package core
. Alles in allem, Sie sind nicht mein Punkt:start_daemon
ist auf Fedore (oder jeder LSB-konformen distribution), brauchen nur zu installieren, die unabhängig von der distribution capabilitylsb-core-noarch
mit der Verteilung der integrierten Paket-manager. zB.yum install lsb-core-noarch
oderapt-get install lsb-core-noarch
Den in Ubuntu sind Teil der Spezifikation "Die Linux Standard Base" und dokumentiert es.
Ich glaube diese Befehle sind distrib Besonderheiten: ich habe Sie nie gesehen.
killproc sollte eine Art töten, aber was ist procofpid tun sollen?
In der Titel, den Sie sprechen über pidofproc, finden Sie diesen Befehl unter dem pidof auf den meisten linux-Boxen.
Ich hatte das gleiche problem wie du, gab es die Warnung:
Änderte ich die
zu