現在、プログラムを常に実行する必要がありますが、サーバーを再起動すると、プログラムを手動で実行する必要があります。そして時々それが起こるとき私は利用できない。
ルートアクセス権がなく、管理者がプログラムをインストールしたくないため、サーバーの起動時に通常の構成を使用してプログラムを再起動することはできません。
私はこれを 同様の質問 に投稿しました
cron
デーモンがある場合、事前定義されたcronタイムフックの1つは@reboot
であり、これはシステムの起動時に自然に実行されます。 crontab -e
を実行してcrontab
ファイルを編集し、次の行を追加します。
@reboot /your/command/here
これはすべてのcronデーモンに対して定義されているわけではないため、特定のデーモンで機能するかどうかを確認する必要があります。
より一般的な解決策は、プログラムが数分ごとに実行されているかどうかを確認するcronジョブを設定することです。通常のユーザーとしてdircproxyを実行すると、crontabエントリは次のようになります。
*/10 * * * * /path/to/dircproxy_cron.sh
これは一般的な質問に対する答えではありませんが、おそらく言及する必要があります。
UnixおよびUnixライクなシステムは、マルチユーザーオペレーティングシステムであるため、マルチユーザー環境でよく使用されます。このため、このようなシステムの管理者は、システムのすべてのユーザーの不安定性や不安定性につながる可能性があるため、不明なサービスやソフトウェアのインストールをためらうことがよくあります。したがって、最初のステップは
さらに信頼性の高い解決策は、 Monit や god のような監視ツールを使用することです。このツールは、プロセスが停止していることを自動的に検出し、再起動中に発生したかどうかに関係なく再起動します。
それはやり過ぎだと思うかもしれませんが、実際にはMonitの構成は次のように単純です。
check process foo with pidfile /var/run/foo.pid
start program "foo_start"
stop program "foo_stop"
if 5 restarts within 5 cycles then timeout
もちろん、管理者が監視ツールをインストールしてくれることを前提としているため、鶏が先か卵が先かという問題になる可能性があります:)
私はお勧めします http://supervisord.org/ それはあなたのプロセスを監督し、あなたのためにそれを再起動し、多くの設定を持っており、通常のユーザーとして実行されるべきです。