ipmitool останавливается при вызове в фоновом режиме

Я использую ipmitool, чтобы получить вывод удаленной консоли с SOL. Это вызывается из фонового процесса. Когда я вызываю его на переднем плане, он корректно записывает вывод консоли в файл журнала. Но когда вызывается в фоновом режиме, ipmitool не работает. Есть идеи почему?

2 ответа

У меня была эта проблема. Решение перенаправления стандартного вывода было недостаточно. Это закончилось работой:

tail -f /dev/null --pid="$$" \
    | ipmitool -H "$ip" -U "$username" -P "$password" -I lanplus sol activate \
    2>> stderr.txt >> stdout.txt &

Идея использования tail -f /dev/null пришел из этого ответа. Там есть несколько других решений, но я их не пробовал.

--pid="$$" означает, что этот процесс будет убит, когда родительский процесс будет убит, что я и хотел, но может соответствовать или не соответствовать вашим потребностям. Вам, вероятно, понадобится какой-то механизм, чтобы избежать tail -f зомби.

ipmitool записывает данные SOL в дескриптор файла выдающегося вывода (stdout). При вызове в фоновом режиме ipmitool не может записывать в стандартный вывод, из-за чего вы не видите консольные журналы.

Если вы хотите запустить его как фоновый процесс, перенаправьте стандартный вывод в файл и подключите его.

Другие вопросы по тегам