![FreeBSD:如何将 python 脚本作为守护进程启动?](https://linux22.com/image/3513/FreeBSD%EF%BC%9A%E5%A6%82%E4%BD%95%E5%B0%86%20python%20%E8%84%9A%E6%9C%AC%E4%BD%9C%E4%B8%BA%E5%AE%88%E6%8A%A4%E8%BF%9B%E7%A8%8B%E5%90%AF%E5%8A%A8%EF%BC%9F.png)
我遇到了一个 python 文件问题,我想将其作为服务启动。我将我的服务命名为 ocrserver,我想要启动的脚本位于 /home/administrator/ocr/ocrserver/在里面.py 添加了一些参数,例如 --address --port 等...阅读了文档后FreeBSD 网站
我写了以下脚本:
#!/bin/sh
# $FreeBSD$
#
# PROVIDE: ocrserver
# REQUIRE: NETWORK
# KEYWORD: shutdown
# add the following line to /etc/rc.conf to enable the ocrserver:
# ocrserver_enable="YES"
. /etc/rc.subr
name="ocrserver"
rcvar="ocrserver_enable"
# default values
: ${ocrserver_enable="NO"}
base_path="/home/administrator/ocr/ocrserver"
address="localhost"
http_port=8080
pyproxy_port=10800
log_level="debug"
pidfile="${base_path}/ocrserver.pid"
command="/usr/sbin/daemon"
# -p : daemon handler pidfile
# -f : redirect stdout and stderr to /dev/null
# -c : change working dir to root
command_args="-p ${pidfile} -f -c /home/administrator/ocr/ocrserver/__init__.py \
--address ${address} --http-port ${http_port} --log-level ${log_level} \
--pyproxy-port ${pyproxy_port}"
procname="/home/administrator/ocr/ocrserver/__init__.py"
command_interpreter="/usr/local/bin/python3.3"
load_rc_config $name
run_rc_command "$1"
然后我在 /etc/rc.conf 文件中添加一行将相应的 rcvar 设置为 YES。我启动了它:
sudo service ocrserver start 我收到消息“正在启动 ocrserver”。输入 sudo service ocrserver status 后,我可以看到该服务没有运行。我还运行了 pgrep -l python3.3 命令来查看是否有任何 python3 进程正在运行但没有结果
我准确地说,我对该文件执行了 chmod 755,以使其可供所有用户读取和执行。
有人对这种事情有经验吗?
感谢您的回答。