web-dev-qa-db-ja.com

crontabを使用してスクリーンセッションを開始するにはどうすればよいですか?

Crontabエントリを作成して、画面を起動し、ゲームサーバーを起動してデタッチします。これは、サーバーが再起動された場合に備えて、自動的に起動させたい場合に使用します。

0 0 0 0 0(コマンド)

起動時に実行する必要があります。

〜/ cube/server.shにあるShellファイルを実行します

12
Victor

このようなものが動作するはずです。この例では、画面を生成して「top」を実行します。

screen -d -m top

示されているように、crontabで次のようなことを行います。

@reboot /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver

もちろん、ゲームサーバーに「通常の」環境セットが必要な場合は、次の方法で近づけることができます。

@reboot (. ~/.profile; /usr/bin/screen -dmS gameserver-screen /opt/mycoolgame/bin/gameserver)
15
Corey S.

これで十分です...実行してください

$ crontab -e

次に入力します。

@reboot screen -dmS Victor
5
atx

完全を期すために、screenの代わりに tmux を使用することもできます(比較については このリンク を参照):

@reboot tmux new-session -d -s yourNameOfTheSession "your command to run"
4
Petr Pudlák

私も同様の状況でしたが、他の不当な制限のため、crontabを使用できませんでした。私は実際にinittab呼び出し画面を持っていました。 (情報を不明瞭にするために一部の名前を置き換えました):

XXX:5:respawn:/bin/su - useraccount -c "screen -D -m -c /home/xxxxxx/file.screenrc"

'file.screenrc'で、いくつかのオプションを設定します。

sessionname obscuresessionname
multiuser on
cd
screen /home/xxxxxxx/programtostart

このように起動時に起動し、プログラムが停止したり画面が閉じたりすると、再起動します。これは従来型とは見なされていなかったかもしれませんが、私はいくつかの奇妙な環境要件を一巡する必要がありました。ただし、それを削除する必要がある場合は、その行をコメントアウトして、セッションを強制終了する必要があります。それを元に戻す準備ができたら、コメントを外して、qを初期化します。

0
mangloide