我正在尝试启动 incron 守护进程”因克朗“在启动时但不起作用。
我已经做好了 :
ln -s /usr/sbin/incrond /etc/init.d/incrond
chmod 755 /etc/init.d/incrond
update-rc.d incrond enable
但不是 ”因克朗“pid 正在那里运行。
问题
我是否一定要使用 /etc/init.d/skeleton 作为起点,或者是否仍然可以符号链接到现有的“因克朗“守护进程,然后怎么办?
注意:
我没有“服务名称启动“可在此 Lenny 发行版上使用。
编辑:作为一本烹饪书,以下是我根据答案的提示解决问题的方法
# 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 超时问题。
答案1
ln -s /usr/sbin/incrond /etc/init.d/incrond
它不是那样工作的。当系统运行某个运行级别的各种启动脚本时,它会向其传递诸如启动、停止、重新启动等参数。您不能只符号链接到守护进程二进制文件,因为该二进制文件要么会失败,要么在传递这些参数时无法正确响应。
您几乎肯定需要创建一个启动脚本。它不必是骨架的副本,但它必须至少接受启动、停止和重新启动参数。
答案2
不,你正在做的事情不应该是可能的。/etc/init.d 中的内容(并使用 update-rc.d 进行管理)是调用指定二进制文件的特殊格式的 shell 脚本。仅将该二进制文件链接到 /etc/init.d 不会产生任何有用的效果。
您是如何安装 incron 的?我没有运行 Debian,但 Ubuntu (Lucid) 软件包incron
包含/etc/init.d/incron
,这是该服务的正确初始化脚本。是的,您可以将其用作/etc/init.d/skeleton
起点,但实际上,您的软件包中应该已经有一个初始化脚本。
说什么dpkg -L incron
?
答案3
debian incron 软件包已经提供了一个 /etc/init.d/incron 脚本,默认情况下应启用该脚本。通常,您只需安装该软件包并运行它即可。
现在您已经修改了此文件,并且由于它是一个 conffile,因此包管理器不会用打包的版本替换您的版本。我建议删除您的 /etc/init.d/incron 脚本,然后运行
apt-get -o DPkg::Options::='--force-confmiss' reinstall incron
强制包管理器替换丢失的配置文件。