делает второй kexec потребности ядра, включил

Вот решение с помощью только повсеместные инструменты оболочки.

Это должно быть легко сделано путем разветвления медленного процесса и a sleep в фоновом режиме и ожидание первого для окончания, за исключением того, что wait встроенная оболочка ожидает всех заданий для окончания, а не только первого.

Таким образом вместо этого, разветвите медленный процесс и a sleep в фоновом режиме имейте их обоих, сообщает их состояние через канал и читает первое состояние, которое выходит из канала.

fifo=$(mktemp -u)  # if not on Linux, adapt to what your OS provides
mkfifo -m 600 "$fifo"
{ ./slowprocess.sh; echo z >"$fifo"; } &
sh -c 'sleep 3; echo a' >"$fifo" &
sleep_pgid=$!
read status <$fifo
case $status in
  a) echo "That process is taking a long time"; read ignored <$fifo;;
  z) echo "Done already"; kill -INT -$sleep_pgid;;
esac
rm "$fifo"
4
08.12.2014, 11:25
1 ответ

Я не видел явного утверждения об этом, и я не дал это попробовать, но я думаю, что это не нужно. В дополнение к моему предположению, на страницах человека говорится:

KEXEC выполняет функцию загрузчика загрузчика из ядра.

Адаптация нагрузки ядра, будет необходима только в том случае, если бы некоторая черная магия вместо процедуры загрузочного загрузчика была вовлечена, но нет, если запускное ядро ​​делает Samle, как загрузочный загрузчик.

0
27.01.2020, 21:05

Теги

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