我在Raspberry Pi rev2上运行Raspbian GNU / Linux 8(jessie)。我写了一个在后台运行的python应用程序收集一些数据。该应用程序本身工作正常。但我需要让它在启动时运行。 我跟着this instruction准备了一个有效的/etc/init.d / ...脚本。看起来像这样:
#! /bin/sh
# /etc/init.d/templogger
### BEGIN INIT INFO
# Provides: templogger
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Simple script to start a program at boot
# Description: A simple script from www.stuffaboutcode.com which will start / stop a program a boot / shutdown.
### END INIT INFO
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting templogger"
# run application you want to start
/home/pi/templogger/templogger.py &
;;
stop)
echo "Stopping templogger"
# kill application you want to stop
killall -15 templogger.py &
;;
*)
echo "Usage: /etc/init.d/templogger {start|stop}"
exit 1
;;
esac
exit 0
当我跑步时尝试"开始"像这样的服务:
sudo /etc/init.d/templogger start
...它按预期工作 - 服务真的正常运行所以我假设init.d脚本可以运行我的应用程序 - 没有权限问题。当我试图"停止"服务:
sudo /etc/init.d/templogger stop
......它很好地停止了。
根据1的下一步是"注册"在启动时运行的脚本:
sudo update-rc.d templogger defaults
此命令不会产生任何输出。但是,当我检查/etc/rcX.d/
时,有一些符号链接应该是:
lrwxrwxrwx 1 root root 20 lut 15 21:27 S03templogger -> ../init.d/templogger
当我
sudo update-rc.d templogger remove
......符号链接消失了。所以我想" update-rc"正在做它的工作。 问题是当我试图通过" service"接口:
sudo service templogger start
......没有任何反应。应用程序不是根据它的内部日志启动,也不是来自" service"命令。此外,我希望该应用程序在启动时运行,但事实并非如此。
我搜索了与服务启动/停止界面相关的帖子,但我找到的所有内容都与人们难以运行的特定服务有关,我没有找到类似的情况。我还考虑过切换到Upstart但是......好吧,不。还尝试将其作为@reboot /home/pi/templogger/templogger.py &
放在crontab中,但这种方法也不起作用。
我错过了什么?