質問

どのようにすることができますを抑制する 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 コマンドを送信しないをお待ち対象の処理に対して、残念 stderrkill コマンドはできます。のbashは、内蔵 wait した具体的にはこの目的です。

ここでは非常に簡単な例を殺す、最近の背景コマンドです。(詳$!こちらです。)

kill $!
wait $! 2>/dev/null

いずれも killwait 受け入れ複数の他にもできなバッチを枯.ここでは一例ですが死ぬことすべての背景-プロセスの現在のプロセス/スクリプトのコースを受講した。

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

http://thread.gmane.org/gmane.comp.shells.bash.bugs/15798

ん取り外しの過程から、現在のシェルプロセス呼び出し 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top