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


12

crontabエントリを作成して、画面を起動し、ゲームサーバーを起動してデタッチするようにします。これは、サーバーが再起動した場合に備えて、サーバーが自動的に起動するようにするためです。

0 0 0 0 0(コマンド)

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

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


このマシンのユーザーですか、それともinitスクリプトにアクセスできますか?
コーリーS.


@デニス:うん、私はそれが好きだ。しかし、彼が実行しているゲームサーバーに、アクセスする必要があるなんらかのコンソールがない(つまり、常にフォアグラウンドで実行される)とは想定できません。そうでなければ、なぜ彼はスクリーンに悩むのでしょうか?もちろん、彼はノーフとバックグラウンドに気づいていません。
Corey S.

私はこのマシンのユーザーです。
ビクター

回答:


15

このようなものが動作するはずです。この例では、画面を生成して「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)

1
その. ~/.profile部分は何をしますか?
ビクター

cronエントリの環境を強制的に設定します。それがなければ、いくつかの非常に具体的なエントリを取得します。(詳細については、man crontabを参照してください)
Corey S.

ゲームサーバーを実行する.shファイルがあるので、これでうまくいきますか? @reboot (. ~/cube; /usr/bin/screen -dmS gameserver-screen ./server.sh)
ビクター

それはおそらくそれを行うための最良の方法です。それが機能する場合、おそらくプロファイルについて心配する必要はありませんが、完全な$ PATHなどが必要な場合は、server.shスクリプトから常に.profileをソースにすることができます。
コーリーS.

5

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

$ crontab -e

次に入力します。

@reboot screen -dmS Victor

この「Victor」コマンドがスクリプトの実行にどのように関連するかを試して説明していただけますか-OPが要求したスクリプトなど。
Patrick

1
-Sは単にセッション名用です
atx

4

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

@reboot tmux new-session -d -s yourNameOfTheSession "your command to run"

0

私も同様の状況でしたが、他の不当な制限のため、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を初期化します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.