J'essaie d'écrire une fonction dans .bash_profile pour définir une fonction de destruction de processus, comme suit:
function pkill {
pid = ps -elf|grep python|grep $1|awk -F " " '{print $4}'
kill -9 pid
}
Et ce que je veux faire est d'utiliser "mot-clé pkill" pour tuer le processus qui pid = [ps-même | grep python | mot-clé grep | awk -F "" '{print $ 4}']], et mon code n'a pas fonctionné .Comment devrais-je écrire cette fonction?
à propos de kill:
mon processus python est multithread.J'ai essayé kill pid
, kill -TERM pid
ou kill -INT pid
, mais je peux toujours le trouver dans la liste de processus.
pkill
( linux.die.net/man/1/pkill ) disponible sur votre système?kill -9
: aplawrence.com/SCOFAQ/FAQ_scotec6killminus9.html et sial.org/howto/shell/kill-9 et speculation.org/garrick/kill-9.htmlRéponses:
Mais vous pourriez peut-être utiliser pgrep à la place:
ou
Si vous vous sentez confiant (téméraire!):
la source
pkill -f "python .*$1"
, commepkill
toujours avecpgrep
.Y a-t-il une raison pour laquelle vous listez puis jetez une tonne de bric-à-brac?
(Je suppose que vous utilisez GNU ps, mais je préfère la syntaxe BSD ps. Elle est également prise en charge par GNU ps, car GNU ps supporte tout.)
Panne:
la source
Ça ne devrait pas être plus comme
la source
$( )
, pas${ }
.