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 не может записывать в стандартный вывод, из-за чего вы не видите консольные журналы.
Если вы хотите запустить его как фоновый процесс, перенаправьте стандартный вывод в файл и подключите его.