FreeBSD:Pythonスクリプトをデーモンとして起動するには?

FreeBSD:Pythonスクリプトをデーモンとして起動するには?

サービスで起動したい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しました。

このようなことを経験した人はいますか?

答えてくれてありがとう。

ベストアンサー1

おすすめ記事