GNU/Linux >> Linux Esercitazione >  >> Linux

Cos'è un file .pid e cosa contiene?

Non sono sicuro che questi siano gli unici motivi, ma ecco il mio trapano:

A seconda del modo in cui scrivi uno shellscript per uccidere il processo desiderato potresti finire per uccidere il kill PID prima che uccida il tuo obiettivo, prendiamo mydaemon ad esempio:

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

A) SIGPIPE-ing killIn un PID Linux a 32 bit di solito è un numero intero a 15 bit, gli overflow si verificano spesso, c'è una probabilità abbastanza grande che i PID grep o awk appaiano prima di quello di mydaemon . In numeri PID a 64 bit sono generalmente a 22 bit, è più di 100 volte meno probabile che accada, ma comunque abbastanza fattibile.

Uccidendo una delle tue pipe riceverai un SIGPIPE e di solito anche questo significa morte, quindi uccidi verrebbe ucciso prima di uccidere mydaemon rendendo il tentativo di uccisione un fallimento.

B) Uccidere altri PID Inoltre, supponi di avere vi /etc/mydaemon/mydaemon.conf in esecuzione del tutto, quel PID potrebbe anche essere ucciso, per non parlare dei processi di altri utenti poiché molto probabilmente avresti emesso tale comando come root.

C) È un semplice blocco simile a unix -> Nessun codice/daemon aggiuntivo richiesto.PidFiles crea un modo abbastanza semplice per creare blocchi gestibili dall'utente per impedirti di generare un demone due volte inavvertitamente.


I file pid contengono l'id del processo (un numero) di un determinato programma. Ad esempio, Apache HTTPD può scrivere il suo numero di processo principale in un file pid - che è un normale file di testo, nient'altro - e successivamente utilizzare le informazioni ivi contenute per arrestarsi. Puoi anche usare queste informazioni per terminare tu stesso il processo, usando cat filename.pid | xargs kill


Linux
  1. Che cos'è un server Web e come funziona un server Web?

  2. Cosa succede se "uccidi -9" non funziona?

  3. Che cosa significa "rc" in .bashrc?

  4. Cos'è il DNS e come funziona?

  5. Cosa ha ucciso il mio processo e perché?

Che cos'è un Makefile e come funziona?

Comando file Linux:cosa fa e come usarlo

Cosa significa null in Linux e nell'informatica

Cosa significa 'rc' in `.bashrc`, ecc.?

Cos'è esattamente <() in bash (e =() in zsh)?

Cosa fa kill -- -0?