バックグラウンドで約100のサーバープロセスが実行されています。私がそれらを殺すたびに、そのpidが死んだことを示す100のメッセージ(サーバーごとに1つ)を受け取ります。
たとえば、
./kill_script.sh: line 196: 1996 Killed myserver 1
./kill_script.sh: line 196: 1997 Killed myserver 2
# and so on till myserver 100
私はこのメッセージを印刷したくありません。実際、数時間前までは、これらのどれも印刷されませんでした。私は今これをなぜ印刷しているのかわかりません。
編集:これが重要な場合は、KILL -9を使用してこれらのプロセスを終了します。しかし、私は前にこれをやったことがあります。
答え1
シェル開発者はこれが役に立つと思ったので、文字通りこれを行います。静かにすることができます:
Bashの関連コードは次のとおりです。
else if(IS_FOREGROUND(作業)) { #if !define(DONT_REPORT_SIGPIPE) if (termsig && WIFSIGNALED(s) && termsig != SIGINT) #他 if (termsig && WIFSIGNALED(s) && termsig != SIGINT && termsig != SIGPIPE) #もし備えて { fprintf(stderr, "%s", j_strsignal(termsig)); if (WIFCORED(s)) fprintf(stderr、_("(コアダンプ)")); fprintf(stderr, "\n"); } }
ここで(IS_FOREGROUND
)は、スクリプトがバックグラウンドに配置されていない場合にこのメッセージが表示されることを示します。