FreeBSD rcスクリプトを作成する簡単な方法はありますか?

FreeBSD rcスクリプトを作成する簡単な方法はありますか?

次のコマンドを使用してサーバーを実行するFreeBSD刑務所があります。

/usr/sbin/daemon /path/to/script.py

現在はマシンを再起動し、刑務所が始まるたびにこのコマンドを実行する必要があります。このコマンドを最初から始めたいです/etc/rc。コマンド用のFreeBSD rcスクリプトを簡単に生成する方法はありますかdaemon


修正する:最後まで読んだrcスクリプトに関するこのBSDドキュメント次のスクリプトを作成しました/etc/rc.d/pytivo

#!/bin/sh

. /etc/rc.subr

name=pytivo
rcvar=pytivo_enable
procname="/usr/local/pytivo/pyTivo.py"

command="/usr/sbin/daemon -u jnet $procname"

load_rc_config $name
run_rc_command "$1"

pytivo_enable="YES"これは、刑務所の開始時にデーモンとして目的のPythonスクリプトを起動するのに役立ちます/etc/rc.conf。警告を発行します。

[root@meryl /home/jnet]# /etc/rc.d/pytivo start
[: /usr/sbin/daemon: unexpected operator
Starting pytivo.
[root@meryl /home/jnet]# 

だからそうです閉鎖、そしてそれ働くしかし、これよりも優れた機能が得られるべきだと思います。

ベストアンサー1

command複数の単語を含めることはできません。これがあなたが見ているエラーの原因です[。フラグは個別に設定する必要があります。

また、pytivo_user代わりにを使用して実行中のuidを設定する必要がありますdaemon -urc.subr(8)これらすべての魔法変数のマニュアルページです。

また、rcサブシステムにpytivoがPythonスクリプトであることを知らせ、プロセスが実行されていることを確認するときにプロセスを見つけることができるようにする必要があります。

set_rcvar最後に、for慣用語を使用する必要がありますrcvar

次のようになります(これが正しいPythonパスであるかどうかはわかりません)。

#!/bin/sh

# REQUIRE: LOGIN

. /etc/rc.subr

name=pytivo
rcvar=`set_rcvar`
command=/usr/local/pytivo/pyTivo.py
command_interpreter=/usr/local/bin/python
pytivo_user=jnet
start_cmd="/usr/sbin/daemon -u $pytivo_user $command"

load_rc_config $name
run_rc_command "$1"

おすすめ記事