サービスで起動したい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"
次に、そのrcvarをYESに設定するために/etc/rc.confファイルに1行を追加しました。私は次のように始めました。
sudo service ocrserver start 「ocrserver の起動中」というメッセージが表示されます。 sudo service ocrserver statusと入力した後、サービスが実行されていないことを確認できます。また、pgrep -l python3.3コマンドを実行して、python3プロセスが実行されているが結果がないことを確認しました。
正確に言うと、すべてのユーザーが読み取って実行できるように、ファイルを755にchmodedしました。
このようなことを経験した人はいますか?
答えてくれてありがとう。