2013-11-15 3 views
1

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

ответ

0

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

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

+0

Я пробовал это, и он не работал. Все еще останавливается, я думаю, может быть, потому что нет stdin? –

0

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

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 пришла форма this answer. Там есть несколько других решений, но я их не пробовал.

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

Смежные вопросы