Killing linux process by piping the id

2019-03-05 03:05发布

I want to kill a process and I get its id with:

pgrep -f "python myscript.py"

I would like to call

kill -s SIGINT 

on it, but I can't find any way to do it.

(the command needs to be in one line)

标签: linux pipe kill
4条回答
别忘想泡老子
2楼-- · 2019-03-05 03:33

It's generally most convenient to use xargs to pass data from a pipe as arguments to a command that doesn't read data from stdin themselves:

pgrep -f "python myscript.py" | xargs kill -s SIGINT
查看更多
贼婆χ
3楼-- · 2019-03-05 03:39

Read the man page, pgrep and pkill are the same program. Use pkill to send a signal to one or more processes which you can select in the same way as pgrep.

pkill -INT -f "python myscript.py"

See also this question and answer on unix.se (where this question would be a better fit).

查看更多
beautiful°
4楼-- · 2019-03-05 03:52

You can also kill a process by name

killall -s SIGINT processname

查看更多
相关推荐>>
5楼-- · 2019-03-05 03:58

Try the backtick operator for evaluating a sub-command

kill -s SIGINT `pgrep -f "python myscript.py"`

(untested)

查看更多
登录 后发表回答