0

hereで説明されているように、seccomp フィルターを使用すると、example.c ファイルの実行時に特定のシステム コールをブロックできます。

プロセスが終了し、「Bad system call」メッセージが出力されます。

$ ./example
Bad system call

メッセージを抑制したい。

これでも役に立ちませんでした:

$ ./example >/dev/null 2>/dev/null
Bad system call
4

2 に答える 2

6

Bad system call最初のステップは、メッセージがどこから来たのかを理解することです。プロセスが停止した原因となったシグナルを通知するのは、シェルの機能です。このメッセージはプロセスではなく、シェルによって出力されます。シェルがプログラムを実行すると、waitpidシステム コールの使用が終了するのを待ちます。パラメータにはstatus終了の理由が記述されており、シェルはそのフィールドを評価し、親切にメッセージを出力します。同様に、シグナルを使用してシェルから起動されたプロセスを手動で強制終了するとSIGKILL、そのシェルはKilled.

これで、メッセージを取り除く方法をすでに理解できました。サブシェルを開始してその出力をリダイレクトすることにより、シェルの出力をリダイレクトする必要があります。

于 2013-09-13T09:32:13.550 に答える
0

まず、無視してはいけないものを無視しようとしています。「悪いシステムコール」は重大な失敗のようです。

ただし、無視する必要がある場合は、次を試してください。

(./example) >/dev/null 2>/dev/null

私はこれをテストしていませんが、単純に機能しない場合に、これが機能するのを見てきました>/dev/null 2>&1

たとえば、(some-command) >/dev/null 2>/dev/nullこのkill -9何らかのコマンドを使用すると、killed画面に表示されるメッセージは表示されません。

于 2013-06-28T08:31:45.123 に答える