GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist eine .pid-Datei und was enthält sie?

Ich bin mir nicht sicher, ob dies die einzigen Gründe sind, aber hier ist meine Vorgehensweise:

Abhängig davon, wie Sie ein Shellscript schreiben, um den gewünschten Prozess zu beenden, könnten Sie am Ende die Kill-PID beenden, bevor sie Ihr Ziel beendet, nehmen wir mydaemon zum Beispiel:

kill -9 `ps ax | grep mydaemon | awk '{ print $1 }'`

A) SIGPIPE-ing killIn einer 32-Bit-Linux-PID ist normalerweise eine 15-Bit-Ganzzahl, Überläufe passieren oft, es besteht eine ziemlich große Chance, dass die grep- oder awk-PIDs vor der von mydaemon erscheinen . In 64-Bit sind PID-Zahlen normalerweise 22-Bit, es ist mehr als 100x weniger wahrscheinlich, aber immer noch ziemlich faktisch.

Wenn Sie eine Ihrer Pfeifen töten, erhalten Sie ein SIGPIPE und normalerweise bedeutet dies auch den Tod, also töten würde getötet werden, bevor mydaemon getötet wird wodurch der Tötungsversuch fehlschlägt.

B) Andere PIDs töten Nehmen wir auch an, Sie hätten vi /etc/mydaemon/mydaemon.conf vollständig läuft, könnte diese PID ebenfalls beendet werden, ganz zu schweigen von den Prozessen anderer Benutzer, da Sie höchstwahrscheinlich einen solchen Befehl als root ausführen würden.

C) Es ist eine einfache Unix-ähnliche Sperre -> Kein zusätzlicher Code/Daemon erforderlich. PidFiles stellen eine ziemlich einfache Möglichkeit dar, benutzerverwaltbare Sperren zu erstellen, um Sie davon abzuhalten, einen Daemon versehentlich zweimal zu spawnen.


Die PID-Dateien enthalten die Prozess-ID (eine Zahl) eines bestimmten Programms. Beispielsweise kann Apache HTTPD seine Hauptprozessnummer in eine PID-Datei schreiben - was eine normale Textdatei ist, mehr nicht - und später die darin enthaltenen Informationen verwenden, um sich selbst zu stoppen. Sie können diese Informationen auch verwenden, um den Prozess selbst zu beenden, indem Sie cat filename.pid | xargs kill verwenden


Linux
  1. Was ist, wenn „kill -9“ nicht funktioniert?

  2. Was macht „lc_all=c“?

  3. Was macht ?

  4. Wofür steht „rc“ in .bashrc?

  5. Was bedeutet Exec 3?

Was ist ein Makefile und wie funktioniert es?

Linux-Dateibefehl:Was macht er und wie wird er verwendet?

Was bedeutet null in Linux und Computing

Was ist NFS und wie wird es unter Linux installiert?

Was hat meinen Prozess zerstört und warum?

Was bedeutet kill-3?