どういうわけかPHPスクリプトを終了しますが、実行を続けます。

どういうわけかPHPスクリプトを終了しますが、実行を続けます。

実行に数時間かかるPHPスクリプトを実行しているため、コンピュータをシャットダウンする必要があります。私は実行スクリプトを使用しますphp script.php

このスクリプトの実行中に閉じる方法はありますか? (サーバーで実行されます)

MacでSSH経由でリモートDigitalOceanサーバーに接続しています。

注:私が望むのは、プロセスを終了するのではなく、続行することです。私はscreenorを使用する必要があることを知っていますが、nohup以前にそうしなかったのは私のせいです。

コンピュータをシャットダウンせずにセッションを終了する唯一の解決策ではありませんか?

PS:誰かがリンクした他の質問と重複しません。私の質問に対する正解も他の質問に対する正解とは異なることがわかります。ここでの問題は、セッションを終了しても、ユーザーが実行中のスクリプトを実行し続けることです。

答え1

プロセスを一時停止するにはCtrl+を押します。Z次に、次の2つのコマンドを実行します。

bg
disown %1

その後、ログアウトしてユーザーなしでプロセスを実行し続けることができます。 しかし、もはや何らかの方法で(終了以外の)プロセスと対話することはできません。

将来的には、長期実行プロセスを理解するために、、、またはをscreen調べるnohupこともできます。tmux

答え2

インストールされている場合は、nohupコマンドを使用してこれを実行できます。

以下は以下で引用された。https://www.cyberciti.biz/tips/nohup-execute-commands-after-you-exit-from-a-shell-prompt.html

nohupコマンド構文:
構文は次のとおりです。

nohup command-name &

または
nohup /path/to/command-name arg1 arg2 &

どこ、

  • command-name:シェルスクリプトの名前またはコマンド名。コマンドまたはシェルスクリプトに引数を渡すことができます。
  • &:nohup は実行されるコマンドを自動的にバックグラウンド化しません。コマンドラインを&記号で終了して明示的に実行する必要があります。
  • crontabサーバーで定期的にジョブを実行する必要がある場合でも、これを設定する方が良いでしょう。

    関連情報