実行に数時間かかるPHPスクリプトを実行しているため、コンピュータをシャットダウンする必要があります。私は実行スクリプトを使用しますphp script.php
。
このスクリプトの実行中に閉じる方法はありますか? (サーバーで実行されます)
MacでSSH経由でリモートDigitalOceanサーバーに接続しています。
注:私が望むのは、プロセスを終了するのではなく、続行することです。私はscreen
orを使用する必要があることを知っていますが、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
サーバーで定期的にジョブを実行する必要がある場合でも、これを設定する方が良いでしょう。