Чтение журналов одного процесса во время выполнения некоторой команды

Проблема здесь в что для этого пользователя есть два правила:

(ALL) NOPASSWD: /bin/chmod, /bin/chown
(ALL : ALL) ALL

Второе происходит из строки в sudoers read

%sudo   ALL=(ALL:ALL) ALL

Sudo будет использовать первое правило сопоставления, начиная с нижней части файла - поэтому, когда вам нужно иметь разные параметры для подмножество команд, вам необходимо убедиться, что они перечислены под более общей строкой.

Другими словами, вам необходимо убедиться, что строка

max ALL=(ALL) NOPASSWD: NOPASS_CMNDS

помещается после строка

%sudo   ALL=(ALL:ALL) ALL

в файле.

10
09.02.2019, 20:43
2 ответа

Это делается довольно просто, отправляя фоновые процессы в фоновый режим:

foo.sh &
mypid=$!
tail -f /path/to/logs.log > /path/to/partial.log &
tailpid=$!
wait $mypid
kill -TERM $tailpid

$!фиксирует PID последнего задания, отправленного для запуска в фоновом режиме, поэтому мы можем waitзакончить ваш сценарий, а затем killпроцесс tail, когда он нам больше не нужен.

12
27.01.2020, 20:00

Эта версия тоже может это делать (я думаю):

( tail -f logs.log >foo_part.log &
foo.sh&
wait $! && kill %1 ) 

Обратите внимание, что %1 вызовет первый фоновый процесс в подоболочке

7
27.01.2020, 20:00

Теги

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