我有一个python脚本,它公开了一个RESTful服务(使用flask框架)。我希望用这个服务克隆最新版本的python脚本,然后启动main.py。
我很清楚它可能是在 init 级别 3 启动的,但我不确定 init 信息到底应该如何配置,也不确定是否可以用以下方式更新 crontab
sudo update-rc.d myservice enable 3
myservice 脚本中实际的内容如下:
#!/bin/sh
rm -fR /home/pi/myservicedir
git clone https://repo/code.git /home/pi/myservicedir
cd /home/pi/myservicedir
python main.py
答案1
您的脚本不是合适的init.d
脚本。其中可能有一个模板文件,/etc/init.d
您可以使用它来创建启动脚本。否则,请查看其中的一些其他脚本以/etc/init.d
找到您的发行版使用的模式。
或者,通常在启动周期的最后阶段运行。这将是放置启动代码的合适位置。在运行代码之前检查isrc.local
的值。$1
start
服务器按 中列出的顺序启动/etc/rc3.d
。 终止脚本启动K
按词汇顺序首先运行,然后启动脚本启动S
按词汇顺序运行。 如果要确保所有内容都在运行,请使用 的启动顺序99
。
您的发行版应该有一种方法可以安装和删除rc#.d
目录中的链接。 就您而言,它似乎是update-rc.d
。 这通常由脚本顶部的注释行控制init.d
。
应该有man
描述您所需程序和文件的页面。尝试运行man update-rc.d
和man -k init
。
答案2
指定 $network,如下所示:
#!/bin/bash
### BEGIN INIT INFO
# Provides: mountftp
# Required-Start: $remote_fs $syslog $network
# Required-Stop: $remote_fs $syslog $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Mount disk2
# Description: Mount disk2
### END INIT INFO