GNU/Linux >> Linux Esercitazione >  >> Linux

Uccidi il processo tramite il file pid

cat /var/run/myProcess.pid | sudo xargs kill -9

In alcune situazioni, il più compatto:

pkill -F /var/run/myProcess.pid

è la strada da percorrere. Ho avuto problemi con le varietà:

kill $(cat /var/run/myProcess.pid)
# Or
kill `cat /var/run/myProcess.pid`

quando ho dovuto inserire il comando in qualcos'altro che potesse analizzarlo utilizzando regole diverse, come fa Monit per i suoi comandi di avvio/arresto.


Credo che tu stia sperimentando questo perché la tua shell predefinita è dash (la shell debian almquist), ma stai usando la sintassi bash. Puoi specificare bash nella riga shebang con qualcosa come,

#!/usr/bin/env bash

Oppure puoi usare l'espressione di back-tick compatibile con trattino e bash suggerita da admdrew nei commenti

kill -9 `cat /var/run/myProcess.pid`

In ogni caso, non puoi fare affidamento su /bin/sh essere bash.


Linux
  1. CentOS / RHEL:come ruotare i file /var/log/wtmp e /var/log/btmp usando logrotate

  2. Come ottengo il percorso di un processo in Unix/Linux

  3. Come eseguire nohup e scrivere il suo file pid in una singola istruzione bash

  4. mysqld_safe mysqld dal file pid /var/run/mysqld/mysqld.pid impedisce il riavvio del server

  5. Esegui il comando bash sulla pipeline jenkins

Esegui file di testo come comandi in Bash

Django static_root in /var/www/... - nessuna autorizzazione a collectstatic

Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

find:Rilevato loop del file system

I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?

Cosa sta rimuovendo cose da /var/run al riavvio da una macchina fedora?