Linuxのジョブ/プロセス(jobs/process)関連のコマンドまとめ (起動、中断、終了、検索、ジョブ強制終了、ログアウト継続実行)
ubuntu/raspberry piでの開発で重宝しているコマンドを覚書
今回は、hoge.pyというスクリプトを例にとる
- プロセスを起動する方法
- 特定のプロセスを検索する方法
- フォアグラウンドのプロセスを終了する方法
- バックグランドのプロセスを終了する方法
- ジョブを確認する方法
- 中断したジョブをフォアグラウンド/バックグラウンドで再開する方法
- 中断したジョブを強制終了する方法
- ログアウト後もコマンドを実行する方法
- ログアウト後も実行しているコマンドを終了する方法
プロセスを起動する方法
$ python hoge.py #フォアグラウンド $ python hoge.py & #バックグランド [1] 20664 # [ジョブID]プロセスID
特定のプロセスを検索する方法
hoge.pyを検索する場合
$ ps aux | grep hoge.py pi 20664 100 0.5 8992 4992 pts/0 R 15:44 4:01 python hoge.py pi 20744 100 0.5 8992 4916 pts/0 R 15:46 2:30 python hoge.py pi 20745 3.1 0.5 8992 4928 pts/0 T 15:46 0:04 python hoge.py pi 20903 0.0 0.1 4272 1844 pts/0 S+ 15:48 0:00 grep --color=auto hoge.py
3回実行しているとこんな感じ
バックグランドのプロセスを終了する方法
方法1. python hoge.py &を実行すると、実行直後のログに" [ジョブID]プロセスID "が出力されるのでそれをメモしてkill
方法2. プロセスを検索してkill
プロセスを検索する
$ ps aux | grep hoge.py
ここで見つかるプロセスIDをメモ
プロセスkill
$ sudo kill プロセスID
ジョブを確認する方法
現在のジョブを確認するコマンドは下記
$ jobs [1] Running python hoge.py & [2]- Running python hoge.py & [3]+ Stopped python hoge.py
Ctrl+Zで終わるとstatusが[Stopped]になっている
これを再起動したり、強制終了させる方法は下記
中断したジョブをフォアグラウンド/バックグラウンドで再開する方法
フォアグラウンドで再開する場合
$ fg %ジョブ番号
バックグラウンドで再開する場合
$ bg %ジョブ番号
ジョブの切り替えは下記
Stoppedのジョブをバックグランドで再開し、フォアグラウンドに切り替える場合
$ bg %ジョブ番号 # バックグランドで再開 $ fg %ジョブ番号 # バックグランドからフォアグラウンドに切り替え
中断したジョブを強制終了する方法
中断した場合はstatusがstoppedになるので、ジョブを終了する
$ sudo kill %ジョブ番号
※実際に即ジョブが強制終了されるわけではないので、少し待つ
ログアウト後も実行しているコマンドを終了する方法
バックグランドのプロセスを終了する方法と同じ