【发布时间】:2013-01-30 00:08:03
【问题描述】:
来自精美的手册页:
kill [-s sigspec | -n signum | -sigspec] [pid | jobspec] ...
kill -l [sigspec | exit_status]
Send the signal named by sigspec or signum to the processes named by pid or
jobspec. sigspec is etc. etc....
那么是什么决定了kill 1 是杀死init 进程还是杀死jobspec 1?
【问题讨论】:
-
呵呵,不知道kill支持的jobspec,我一直用通用的
jobs -x kill %1 -
@bishop 不这么认为,我认为是 shell 拦截了
kill以将该功能添加到其工作管理中。 -
@bishop 我想知道
jobs -x kill %1;是否也创建了一个多余的过程。jobs是一个内置函数,但它实际上可能会调用 kill(1) (并且 bash 将用 PID 替换 jobspec 以便 kill(1) 可以真正完成它的工作)。如果您使用kill %1,kill是内置的,因此不会运行新进程。如果您已达到机器上运行进程的限制,这将特别有用。
标签: shell syntax process sh kill