gpt4 book ai didi

linux - linux 启动时无法启动程序

转载 作者:太空宇宙 更新时间:2023-11-04 05:05:31 24 4
gpt4 key购买 nike

我无法在设备启动时正常启动程序。我创建了一个脚本并将该脚本放在 /etc/init.d/S77Hello.sh 中在此脚本中,我启动了该程序,该程序充当其他程序的看门狗。但启动完成后,只有看门狗程序运行,而不运行其他应由看门狗程序启动的程序。

有趣的是,当我使用以下命令启动程序时: /etc/init.d/S77Hello.sh start它以正常方式启动所有其他程序。

S77Hello.sh

#!/bin/sh
/usr/local/bin/mywatchdog

任何解决问题的帮助都会有所帮助。

谢谢,尤维

最佳答案

启动时不会自动调用/etc/init.d中的脚本;你必须首先告诉你的 init 系统这样做。如果您的发行版有 /etc/init.d,则可能是通过 update-rc.d 完成的。具体来说:

update-rc.d S77Hello.sh defaults

查看相关的手册页。如果您更喜欢 GUI,rcconf 提供了一个更加用户友好的界面,尽管您可能需要先安装它。

不过,在执行此操作之前,请修复您的初始化脚本;它缺乏重要信息。您可能想阅读this如果您还没有的话。

至少,它需要看起来像这样:

#/bin/sh
### BEGIN INIT INFO
# Provides: mywatchdog
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start watchdog at boot time
# Description: Something something something
### END INIT INFO

case "$1" in
start)
/usr/local/bin/mywatchdog
echo $! >/var/run/mywatchdog.pid
echo "watchdog started."
;;
stop)
if kill "$(cat /var/run/mywatchdog.pid)"; then
rm /var/run/mywatchdog.pid
echo "watchdog stopped."
else
exit 1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac

这在某种程度上假设是一个类似 Debian 的系统,但由于您在 ARM 上使用带有 sysvinit 的发行版,我猜您在 Raspberry Pi 上使用 Raspian。如果没有,请检查现有的初始化脚本在您的发行版中的工作方式。

关于linux - linux 启动时无法启动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15031076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com