在启动时运行可执行文件

在启动时运行可执行文件

对于我的一生,我无法让它发挥作用。我在 Raspberry Pi 上运行 Debian。

从 CLI 运行此命令:

/home/pi/domotiga/DomotiGaServer.gambas -d

运行我的家庭自动化服务器。

我该如何在启动时运行它?

我的 /etc/init.d 目录中有一个文件确实已加载,但它不会启动服务器

文件内容:

#!/bin/bash
### BEGIN INIT INFO
# Provides:          domotigaserver
# Required-Start:    $syslog $mysql
# Required-Stop:     $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: domotiga server
# Description:
#
### END INIT INFO

#!/bin/bash
# /etc/init.d/domotigaserver
#

# Carry out specific functions when asked to by the system
case "$1" in
start)
su pi -c '/home/pi/domotiga/DomotiGaServer.gambas -d'
echo "Starting DomotiGa Server " 
;;
stop)
pkill DomotiGaServer.gambas
echo "DomotiGa Server has been stopped (didn't double check though)" 
;;
*)
echo "Usage: /etc/init.d/domotigaserver {start|stop}" 
exit 1
;;
esac

exit 0

答案1

创建 init.d 脚本是不够的。您需要创建开始/停止链接/etc/rc[0-9].d以获得正确的运行级别

默认情况下,Debian 使用运行级别 2(可在 中配置/etc/inittab)。

要创建适当的链接,您可以使用更新-rc.d。跑步

update-rc.d domotigaserver defaults

作为根用户。

或者,您可以使用rcconf(例如通过安装apt-get install rcconf)。它提供了一个不错的途易

参见示例这里了解更多信息。

答案2

结果发现脚本执行得太早了;在一些先决条件之前。符号链接被命名为 S03domotigaserver - 我将它们重命名为 S80domotigaserver,现在它可以工作了。

相关内容