質問
どのようにすることができますを抑制する Terminated
メッセージが付属しまうと
プロセス、バスクリプト?
てみました set +bm
, が、この方法でやらねばならない。
か別の解決を呼び exec 2> /dev/null
, ものであること
。したいリセットができるよう、継続するstderr?
解決
その答えはできません。Bash常版画の状況を前景です。モフラグのみを対象としたバックグラウンドの仕事は、インタラクティブ殻ないためのイントロダクションです。
見notify_of_job_status()でいます。c.
あなたの言葉を借りれきにリダイレクトでは標準エラーが差しを/dev/nullの場合もお見逃その他のエラーメッセージが返されます。いなかったということではないかによって一時のリダイレクトに独立したサブシェルで走るのを記述します。この環境です。
(script 2> /dev/null)
まなすべてのエラーメッセージだからスクリプトは何も実行する。
きの保存と復元を標準エラーにより、残念新しいfiledescriptorポイントもコメントありがとうございます
exec 3>&2 # 3 is now a copy of 2
exec 2> /dev/null # 2 now points to /dev/null
script # run script with redirected stderr
exec 2>&3 # restore stderr to saved
exec 3>&- # close saved version
なおこのみに上からのものであることを保存するサブシェルは、呼び出しされながら、より複雑なものを変えるのは、行動スクリプトの場合、スクリプトファイル記述子を変更.
編集:
より適切な回答チェック解答を与えよ エドガー-マーク
他のヒント
のための静寂のメッセージには、残念 stderr
当時のメッセージが発生する.なので kill
コマンドを送信しないをお待ち対象の処理に対して、残念 stderr
の kill
コマンドはできます。のbashは、内蔵 wait
した具体的にはこの目的です。
ここでは非常に簡単な例を殺す、最近の背景コマンドです。(詳$!こちらです。)
kill $!
wait $! 2>/dev/null
いずれも kill
や wait
受け入れ複数の他にもできなバッチを枯.ここでは一例ですが死ぬことすべての背景-プロセスの現在のプロセス/スクリプトのコースを受講した。
kill $(jobs -rp)
wait $(jobs -rp) 2>/dev/null
に至ったのはここから bash:を黙殺しの背景機能処理.
作 月の回答.使っていた kill -INT
したが一定の成果をあげ、私がいませんでした殺害に加工し試験の後その他の信号をいたように、これまでとは違った SIGPIPE
ようにともなメッセージ。
kill -PIPE
または単に
kill -13
【解決利用SIGINT(作品だけに非インタラクティブシェル)
デモ:
cat > silent.sh <<"EOF"
sleep 100 &
kill -INT $!
sleep 1
EOF
sh silent.sh
ん取り外しの過程から、現在のシェルプロセス呼び出し disown
?
こうしたすべての物を求めているのですか。
ないためには、
$ sleep 3 &
[1] 234
<pressing enter a few times....>
$
$
[1]+ Done sleep 3
$
た:
$ (set +m; sleep 3 &)
<again, pressing enter several times....>
$
$
$
$
$
ご覧のとおり、仕事の終了メッセージ。作品は私の中ではbashのスクリプトとして、死者の背景のプロセス。
セット+m'ジョブ制御が有効に参照を'help'設定')現在のシェルです。なお入りいただければ、コマンドに独立したサブシェルです(ここでしかできないこ括弧で囲まに対する影響は少ないジョブ制御の設定を、現在のシェルです。だけるという煩わしさがありますのpidのバックグラウンド処理の現在のシェルを確認することができますかどうかの終了の評価を返します。
別の言い方を無効にする仕事を通知することで、コマンドをbackgroundedに sh -c 'cmd &'
施工性が向上します。
#!/bin/bash
# ...
pid="`sh -c 'sleep 30 & echo ${!}' | head -1`"
kill "$pid"
# ...
# or put several cmds in sh -c '...' construct
sh -c '
sleep 30 &
pid="${!}"
sleep 5
kill "${pid}"
'
この仕事もkillallの方に好まれます。
killall -s SIGINT (yourprogram)
を抑制するメッセージ...して走っていましたmpg123背景モードになります。されることもあるという黙々とによって殺される送信ctrl-c(SIGINT)の代わりにSIGTERMます(デフォルト)。
与兵衛を勘当たのも私にとってのexec3>&2は、リスクのための多くの理由--セット+bmされているようには思えない仕事の内部にスクリプトのコマンドプロンプト
が成功の追加'jobs 2>&1 >/dev/null
'スクリプトになるまでの各号のいずれかのスクリプトのだが、ここではサンプルです。
while true; do echo $RANDOM; done | while read line
do
echo Random is $line the last jobid is $(jobs -lp)
jobs 2>&1 >/dev/null
sleep 3
done
このように、killコマンド機能をbackgroundingの機能を抑制終了出力
function killCmd() {
kill $1
}
killCmd $somePID &
シンプルです:
{ kill $! } 2>/dev/null
有利ですか。利用することができます。信号
ex:
{ kill -9 $PID } 2>/dev/null