スクリーンセッションを作成し、ゲームサーバーを起動するスクリプトを作成しようとしましたが、実際にやりました。ところで、問題は分離後にセッションに再接続することです。セッションから切り離した後、サーバーが実行されていることがわかりますが、私のscreen -ls
セッションに書き込むと表示されません。入力してもCntrl+A "
セッションは表示されません。screen -r
セッションがないと言ってみてください。ただし、サーバーがまだ実行中であり、入力にプロセスが表示されるため、セッションがあると100%確信していますps au
。私は何が間違っていましたか?
また、セッションを作成し、そのセッションでサーバーを実行し、ジョブを切り離して再接続します。スクリプトで完了すると、再接続または見つかりません。
答え1
おそらく、アプリケーションは実際に画面を必要とせず、アクティブセッション(デーモンなど)なしで実行することができます。その後、単に画面から切り離すだけです。それが本質的にすべてです。フォアグラウンドで実行するには、いくつかのパラメータを指定する必要があります(該当するオプションがある場合)。
画面でbashを実行してみることができます
screen -dmS script bash -c '/execute/shell/script.sh; exec bash'
これにより、画面が保持され(bashを使用して)コンソールを表示できます。
答え2
まず、次のコマンドを使用して新しいスクリーンセッションを開始します。
screen -dmS <sessionname> <script_name>
これにより、本番環境で新しい独立したスクリーンセッションが作成され、デフォルト <sessionname>
で自動的に切り離されます。
後でできます。添付次の方法でいつでもこの会議に参加できます。
screen -r <sessionname>`
実行中のセッションに再接続する。
メモ:次のキーボードの組み合わせを使用してください。Ctrl+A を押してから D到着分離もう一度画面。
分離とは、スクリプトを終了せずに画面内でスクリプトを実行し続けることを意味します。つまり、後でいつでも再接続できます。