AS/400だと、バックグラウンドジョブ(バッチジョブ)は、ユーザーがログアウトしても終了しないので、unixもそうなんだろうなと勝手に思ってたら、そうじゃなかったのでメモ。
telnetやssh を使ってログインしていると、ログアウトした時に子プロセスが全て終了するんですね。(bashでは)
nohup
nohupコマンドでコマンドを実行させることで、ユーザーがログアウトしてもジョブが終了しません。&(バックグラウンド)をつけ忘れないように。
> nohup command &
disown
nohupし忘れた場合、disownコマンドを使用します。事前にjobsコマンドでジョブ番号を確認します。
> jobs
[1]+ Running command &
> disown %1
disownコマンドが無い
netbsd付属のksh(Public domain Korn shell)には、disownコマンドがありませんが、setコマンドでnohupオプションを使用すれば同様の事ができます。
> set -o nohup #nohupオプションをonへ
> set +o nohup #nohupオプヨンをoffへ
> set -o #setオプションの一覧表示
標準でnohupはonになっていますので、長い処理をおこなうジョブはバックグラウンドにしておけば、ログアウトしても終了しません。