如何让这个 System V init 脚本在启动时启动?

如何让这个 System V init 脚本在启动时启动?

我已经安装了乌迪克斯胶水在我的 Raspbian Raspberry Pi 上,以及 System V init脚本/etc/init.d/udisks-glue(按照说明这里)。我使其可执行并运行以下命令,不会返回任何错误。

sudo update-rc.d udisks-glue defaults

我可以很好地启动脚本,并且它按预期工作。

$ sudo service udisks-glue start
[ ok ] Starting Automounter: udisks-glue.
$ sudo service udisks-glue status
[ ok ] udisks-glue is running.

但是,当我重新启动时,它没有运行。这曾经工作得很好,但我重新安装了一个最小的系统,它不再工作了。我可能丢失了一些包裹。

$ sudo service udisks-glue status
[FAIL] udisks-glue is not running ... failed!

故障排除

start)我尝试通过将块中的一行更改为来记录输出和错误

start-stop-daemon --start --exec $DAEMON -- -p $PIDFILE &>> /tmp/udisks-glue.log

重新启动后该文件为空。然而,它确实存在,这表明该脚本至少已部分执行。

最后,我尝试确认安装是否正确。除其他事项外,locate udisks-glue回报

/etc/rc0.d/K01udisks-glue
/etc/rc1.d/K01udisks-glue
/etc/rc2.d/S01udisks-glue
/etc/rc3.d/S01udisks-glue
/etc/rc4.d/S01udisks-glue
/etc/rc5.d/S01udisks-glue
/etc/rc6.d/K01udisks-glue

编辑 - 进一步故障排除

我想我可以测试一下脚本是否运行得太早,所以我测试了两种可能的解决方案。两者都失败了。首先,我尝试让脚本以较低的优先级运行。

mv /etc/rc2.d/S{01,90}udisks-glue

其次,我在调用之前将其恢复然后插入sleep 90到块中。start)start-stop-daemon

答案1

听起来您的 Rasp Pi 设备正在以 2、3、4 或 5 以外的运行级别运行,因为您的/etc/rc*.d目录包含指向udisks-glue脚本的链接。您可以通过以下方式判断这一点:以 K 开头的链接将在处于这些运行级别之一时终止您的脚本/服务,而以 S 开头的链接将启动它。

我会仔细检查您的运行级别,然后调整相应运行级别目录中的链接。

我的运行级别是多少

您通常可以运行此命令来找出答案。

$ runlevel
N 5

所以我的系统处于运行级别 5。

答案2

我遇到了同样的问题,然后我去了

cd /etc/init.d/

并将 udisks 胶水粘到 root 上

 sudo chown root: udisks-glue

尝试过

sudo reboot

它就像一个魅力!

相关内容