хотел бы подавить вывод pkill в фоновом процессе

Решено. Мне кажется, что диспетчер загрузки все еще загружал личинку Ubuntu, а личинку Debian не включал. Мне просто нужно выполнить bcdedit /set "{bootmgr}" path \EFI\debian\grubx64.efiиз Windows PowerShell.

0
16.05.2020, 14:52
2 ответа

@ Квазимодо предложил мне взглянуть на https://stackoverflow.com/q/81520, который я не нашел полезным. Однако одно из предложений в этом посте указывало наhttps://stackoverflow.com/q/5719030/1997354

, который использовалdisown(справочную страницу ), чтобы точно решить мою проблему. А именно:

iostat -c 1 > data.cpu &
disown
# collect required data
pkill iostat

В дополнение к использованию disown есть способ подавить сообщение "Terminated " без использования disown --, а именно использовать kill вместо pkill, как в следующем

iostat -c 1 > data.cpu &
iostat_pid=$(pidof)
# collect required data
kill -9 $iostat_pid
1
28.04.2021, 23:14

Как поясняется в ответе на вопрос, который вы указали, отображением таких сообщений можно управлять с помощью команды wait.

Таким образом, один из подходов может состоять в том, чтобы запустить iostatв фоновом режиме и немедленно waitдля него с перенаправленным stderr, а затем снова запустить всю составную команду в фоновом режиме, чтобы не ждать wait.

То есть:

(iostat -c 1 > data.cpu & wait 2>/dev/null) &

После этого вы можете pkill iostatтак же, как делали изначально.

На самом деле будьте осторожны, нацеливайтесь именно на этот iostat процесс, а не на подпроцесс -оболочки, являющийся родителем этого iostat. pkill iostat убивает все iostatзапущенные в данный момент процессы, так что этого достаточно.

1
28.04.2021, 23:14

Теги

Похожие вопросы