如here所述,使用seccomp過濾器,我們可以在運行example.c文件時阻止特定的系統調用。抑制「Bad system call」消息
過程將終止,將印有「壞的系統調用」消息:
$ ./example
Bad system call
我想消息打壓。
即使這並沒有幫助:
如here所述,使用seccomp過濾器,我們可以在運行example.c文件時阻止特定的系統調用。抑制「Bad system call」消息
過程將終止,將印有「壞的系統調用」消息:
$ ./example
Bad system call
我想消息打壓。
即使這並沒有幫助:
第一步是瞭解Bad system call
消息來自何處。這是你的shell的一個功能,告訴你什麼信號導致你的進程死亡。此消息不是由您的進程打印的,而是由您的shell打印的。當shell執行程序時,它會等待它完成使用waitpid
系統調用。在status
參數中描述了終止的原因,並且shell評估該字段並打印出消息。同樣,當您手動終止使用SIGKILL
信號從外殼啓動的進程時,該外殼將打印Killed
。
現在你已經想通了如何擺脫消息。您需要通過啓動子shell並重定向其輸出來重定向shell的輸出。
首先,您要忽略的東西,你不應該忽視。 「壞系統調用」似乎是一個嚴重的失敗。
但是,如果你要忽略它,嘗試:
(./example) >/dev/null 2>/dev/null
我沒有測試過這一點,但我已經看到了這方面的工作,當簡單>/dev/null 2>&1
不起作用。
例如與(some-command) >/dev/null 2>/dev/null
,如果你kill -9
這個一些命令,屏幕上打印的killed
消息不打印。
嘗試'./example&>/dev/null' –
@DavidRF沒有工作。同樣的結果。 – Random