我正在尝试在启动时启动 incron 守护程序“ incrond ”,但不起作用。
我已经做好了 :
ln -s /usr/sbin/incrond /etc/init.d/incrond
chmod 755 /etc/init.d/incrond
update-rc.d incrond enable
但是没有“ incrond ”pid 在那里运行。
问题
我应该绝对使用 /etc/init.d/skeleton 作为起点,还是仍然可以符号链接到现有的“ incrond ”守护进程,然后如何?
注意:
我在这个 Lenny 发行版上没有可用的“ service name start ”。
编辑:作为一本烹饪书,这是我解决它的方法,感谢答案的提示
# Update the discontinued Lenny sources list ("vim /etc/apt/sources.list")
# Reinstall incron ("aptitude reinstall incron"), maybe should also reinstall inotify-tools
# Create manually the famous missing start script ("vim /etc/init.d/incron" and, chmod 755 this file)
# Run the daemon at boot ("update-rc.d incron enable")
# Check start/stop args passed to the daemon ("/etc/init.d/incron restart" and then, "pidof incrond")
# Reboot and control again that the daemon incrond is running (use "pidof" or "ps -ef | grep incron" or "cat /var/run/incron.pid")
注意:我在这里找到了启动脚本的良好基础,但没有遇到这个 incrond 超时问题。
它不是那样工作的。当系统为运行级别运行各种启动脚本时,它会向它传递一个参数,如启动、停止、重新启动等。您不能只是符号链接到守护程序二进制文件,因为该二进制文件将失败,或者在传递这些参数时无法正确响应。
您几乎肯定需要创建一个启动脚本。它不必是 skeleton 的副本,但它必须至少接受开始、停止和重新启动参数。
不,不应该做你正在做的事情。/etc/init.d 中的内容(并使用 update-rc.d 进行管理)是调用指定二进制文件的特殊格式的 shell 脚本。仅仅将该二进制文件链接到 /etc/init.d 不会做任何有用的事情。
你是如何安装 incron 的?我不运行 Debian,但运行 Ubuntu (Lucid) 包
incron
includes/etc/init.d/incron
,这是该服务的正确初始化脚本。是的,您可以将/etc/init.d/skeleton
其用作起点,但实际上,您的包中应该已经有一个初始化脚本。说什么
dpkg -L incron
?debian incron 软件包已经提供了一个 /etc/init.d/incron 脚本,它应该默认启用。您通常只需安装软件包并让它运行。
现在你已经改变了这个文件,因为它是一个配置文件,包管理器不会用打包的版本替换你的版本。我建议删除您的 /etc/init.d/incron 脚本然后运行
强制包管理器替换丢失的配置文件。