我查看了一些init.d
脚本,其中许多脚本在“ stop)
”目标中使用了这个本质上是这个命令的命令:
kill $(pidof ${DAEMON_NAME})
这pidof ${DAEMON_NAME}
实际上是一个脚本函数,用于检查状态代码并在必要时调用 exit,尽管如此,上面的和这个有什么不同:
killall ${DAEMON_NAME}
init.d
如果可以的话,脚本将会得到很大的简化。
编辑: 我应该补充一下,这些“进程”不是守护进程,而且实际上并没有在 FS 的任何地方记录它们的 PID……
答案1
是的,它们功能相同。
皮多夫是一个 shell 函数。
注意全杀之后杀并且并非在所有 Linux/Unix 版本中都可用。
因此,如果您必须编写启动脚本,kill/pidof 是更通用的方法。