Linuxでnohupで起動したスクリプトをどうやって停止しますか?
Linux上でnohupを使用してスクリプトを起動するのを停止するには、次の手順に従ってください。
- ps -ef | grep <スクリプト名>のコマンドを使用して、実行中のスクリプトのプロセスID(PID)を検索します。たとえば、スクリプト名がmyscript.shの場合、ps -ef | grep myscript.shを実行して関連するプロセスIDを検索できます。
- スクリプトのプロセスIDを見つけたら、kill <プロセスID>コマンドを実行してスクリプトの実行を停止します。例えば、プロセスIDが12345の場合は、kill 12345を実行してスクリプトの実行を停止できます。
脚本が複数のプロセスを起動している場合、全ての関連プロセスを停止するためには、killall <スクリプト名>コマンドを使用できます。例えば、スクリプト名がmyscript.shの場合、killall myscript.shを実行して、そのスクリプトに関連する全てのプロセスを停止できます。
killコマンドまたはkillallコマンドを使用してスクリプトを停止すると、スクリプトの進行中のタスクが中断される可能性がありますので、スクリプトにはステキな停止ロジックを実装することが最善です。そのため、停止シグナルを受信した時に、タスクを正常に完了させて終了することができます。