
慣用的な方法は何でしょうか? 追加の依存関係が少なく、最も標準的でありながらシンプルな方法をお勧めします。Linux の systemd の代替のようなものです。
答え1
インストールされたプロセスは、以下を追加することで自動的に再起動できます。/etc/rc.conf
yourprocess_enable="YES"
Linux ユーザーのための FreeBSD システムの起動
しかし、それはスタートアップスクリプトがあることを前提としています/usr/local/etc/rc.d/
答え2
プロセス用のrc.dスクリプトがまだない場合は、次のようにすれば簡単に目的の結果を得ることができます。デーモン(8)コマンド。このコマンドはバックグラウンドで子プロセスを実行し、コマンドラインオプションを使用すると-r
、子プロセスが終了した場合に再起動することができます。
$ daemon -r /some/path/to/command
-R <delay in seconds>
FreeBSD の以降のバージョンでは、プロセスを再起動するまでに待機する時間を指定できます。
再起動後にプロセスを開始するには、crontab(5)次のようなファイルです:
@reboot daemon -r /some/path/to/command
crontabファイルを編集するには、
$ crontab -e
答え3
前述のように、(または関連ファイル)<service>_enable=YES
は起動時にサービスを開始します。/etc/rc.conf
rc.conf.d
クラッシュ時に再起動する場合、標準的な方法は次のようになります。デーモンツール。
答え4
次のように、2 分ごとに cron にスクリプトを追加できます。
#!/bin/sh
process = 'my-secret-service' # process name
if ps ax | grep -v grep | grep $process
then
echo "$process is alive."
else
echo "$process is dead, but will be launched."
/usr/local/bin/my-secret-service #launch command
fi