Ubuntu 14.04 LTS x64を実行している仮想サーバーがあり、システムがクラッシュした場合は、システムで再起動して再起動する永続的なプロセスを作成したいと思います。
そのために、etcディレクトリの「inittab」に次の行を追加しました。
test:5:respawn:echo "HELLO TEST" > /test.log
sometestname:234:/var/path/to/process/myprocess
「init q」または「telinit q」を実行した後は何も起こりません。 test.logファイルが生成されず、プロセスが開始されず(pstreeを使用するとリストされません)、システムログには何もありません。サーバーを再起動しても役に立ちませんでした。
また、次のように "/etc/systemd/system/"に新しい "myprocess.service"を作成し、systemdを使用して新しいサービスを作成してみました。
[Unit]
Description=Process Name
[Service]
ExecStart=/var/path/to/process/myprocess
Restart=restart-always
[Install]
WantedBy=multi-user.target
同様に、サーバーを再起動した後、そのプロセスはもう存在しません。
Ubuntuで永久プロセスを作成する他の方法はありますか?
また、プロセスはサーバーとして機能しますが、ユーザー入力も許可できます。ほとんどの場合、バックグラウンドプロセスとして実行されるため、メインコンソールに「接続」していくつかのコマンドを実行し、後で切断することはできますか?パテを使用してリモートでサーバーにアクセスしています。
答え1
クローンタブを使用できます。 crontabは毎分プロセスを開始できます。すでに実行中であることを確認し、その場合は終了する必要があります。http://linux.die.net/man/1/crontab
答え2
inittab は、プロセスが早すぎる終了を認識して停止します。 60秒待ってから終了する小さなシェルスクリプトを試してください。 echo コマンドが正しく動作しません。