什么是linux脚本中的start-stop-daemon?

时间:2013-04-22 05:23:29

标签: linux shell init.d start-stop-daemon

什么是start-stop-daemon以及如何使用它?

我正在尝试自动运行特定程序。只要系统启动,程序就应该运行。为此,我在/etc/init.d/位置编写脚本。

2 个答案:

答案 0 :(得分:58)

这是一个管理系统级后台进程(守护进程)的启动和停止的程序。您可以通过传入参数(例如创建/检查的pid文件)和要启动的进程的命令参数来使用它。

然后,你做两件事之一:

start-stop-daemon -S [other arguments] something

如果something尚未运行,请启动something。如果它正在运行,则什么也不做。

start-stop-daemon -K [other arguments] something

停止something。如果something未运行,则不执行任何操作。

man page提供了有关各种参数的更多信息。通常,/etc/init.d/中提供了一个模板,其中包含用于控制后台进程运行的init进程的其他命令。


这是什么意思?

  

start-stop-daemon --start --background -m --oknodo   --pidfile $ {PIDFILE} --exec $ {DAEMON} - $ {TARGETDIR}

  • --background =启动作为后台流程
  • -m =制作一个PID文件。当您的进程未创建自己的PID文件并与--background
  • 一起使用时,将使用此方法
  • --oknodo =如果守护程序未执行任何操作,则返回0,而不是1
  • --pidfile ${PIDFILE} =检查是否已创建PID文件
  • --exec =确保进程是此可执行文件的实例(在您的情况下为DAEMON

答案 1 :(得分:9)

复制/etc/init.d/skeleton file(例如/etc/init.d/rajeevdaemon或其他好名称),这是一个包含大量注释的shell脚本,并根据您的需要进行编辑。然后添加适当的符号链接,例如/etc/rc2.d/S98rajeevdaemon/etc/rc2.d/K98rajeevdaemon

详细了解runlevels

最近(或未来)的Linux发行版正在使用越来越多的systemd