戻る
■バックグラウンドで処理を実行する(簡易な方法)
プログラムを実行する際に & を付けると、バックグラウンドで実行できる プログラムを停止したい場合、kill で該当のプログラムを停止する 以下は挙動を確認するための簡易なプログラム $ vi hello.sh
#!/bin/bash while true do echo "Hello World." >> hello.log sleep 1 done
以下のようにすると通常実行できる 1秒ごとに「Hello World.」というテキストが hello.log に出力される 「Ctrl+C」でキャンセルできる $ chmod 0755 hello.sh $ ./hello.sh Hello World. Hello World. Hello World. Hello World. Hello World. 以下のように & を付けると、バックグラウンドで実行される psコマンドで実行を確認できる $ ./hello.sh & [1] 5412 $ ps aux | grep hello pi 5412 0.0 0.0 4496 2916 pts/0 S 18:18 0:00 /bin/bash ./hello.sh pi 5501 0.0 0.0 4016 612 pts/0 S+ 18:19 0:00 grep --color=auto hello $ kill 5412 以下のように nohup も付けておくと、ユーザがログアウトしても処理が維持される また、nohup を付けた場合は同階層の nohup.out にログが出力される この場合も、プログラムの停止は kill で行う $ nohup ./hello.sh & [1] 5543 以下のようにすると、nohup.log にechoの内容が表示され、error.log にエラーが出力される $ vi hello.sh
#!/bin/bash while true do echo "Hello World." sleep 1 done
$ nohup ./hello.sh > nohup.log 2> error.log & [1] 5780 Linuxコマンド(Bash)でバックグラウンド実行する方法のまとめメモ - Qiita https://qiita.com/inosy22/items/341cfc589494b8211844 プロセス管理: nohup, disown, kill - Heavy Watal https://heavywatal.github.io/dev/nohup.html 【 nohup 】コマンド――端末を閉じてもログアウトしても処理を続ける:Linux基本コマンドTips(137) - @IT https://www.atmarkit.co.jp/ait/articles/1708/24/news022.html サーバの接続切れてもコマンドを実行する ~ nohup - 忘れないようにメモっとく http://akiniwa.hatenablog.jp/entry/2013/08/26/163655 nohup コマンドで任意の場所にログを出力する方法 - 約束の地 https://obel.hatenablog.jp/entry/20180208/1518054980 SSH 接続先でサーバを立ち上げっぱなしにしてログアウトするための Bash の書き方 - Corredor https://neos21.hatenablog.com/entry/2018/09/26/080000 nohupで実行したコマンドの出力をnohup.out以外のファイルに保存する https://kazmax.zpp.jp/linux/nohup_stdout.html nohup コマンド - Qiita https://qiita.com/sinsengumi/items/759ce48e844a46ed8091 nohupとリダイレクトを自分のために調べてみた - Qiita https://qiita.com/TsuyoshiUshio@github/items/6ef090795eae6ffaa903 Linux: nohupと&の違い - Qiita https://qiita.com/wifecooky/items/a4856e200212858f8c99 以下によると、nohupは「デーモンとして実行するための貧弱な方法」とされている デーモンについては、このファイル内にある「バックグラウンドで処理を実行する(サービス)」も参照 unix - What's the difference between nohup and a daemon? - Stack Overflow https://stackoverflow.com/questions/958249/whats-the-difference-between-nohup-and-a-daemon