& を使用してバックグラウンドでプロセスを実行する

& を使用してバックグラウンドでプロセスを実行する

次のスクリプトを作成しました:

#!/bin/bash
while :
do
    echo "1" >> test.txt
    sleep 1
done

このコマンドを実行すると./exm.sh &期待どおりにバックグラウンドで実行され、ファイルtest.txに1が追加されます。

数分後、私はタイプするログアウト私の知る限り、期待される動作はセッションのすべての子プロセスを閉じることですが、再度ログインしてpを実行すると、s auwx | grep exmプロセスはまだ存在し、ファイルに書き込みを行っています。これは想定された動作でしょうか? CentOS 7 と Ubuntu の最新バージョンを新規インストールしても同じ結果になりました。

答え1

これは、異なるOSで一般的に設定されているものではありません。ログアウトの動作を変更したい場合は、ファイルを編集できます。1. ~/.bash_logout -bashを使用している場合 2. ~/.logout -cshを使用している場合

詳細については参考資料をご覧ください。 Unix ログアウトコマンド

関連情報