Рубиновая система подавления истинного выхода
Я запускаю фоновое задание по рейку. (С помощью '&'). Дело в том, что я хочу, чтобы это иногда прекращалось. Итак, я написал это:
pinger_pid = system "ps | grep rake | awk '{print $1}'"
puts pinger_pid
system "kill -9 #{pinger_pid}"
Кажется, я получаю "истинный" вывод мусора! Как я могу удалить это? Спасибо
выход:
ERROR: garbage process ID "true".
Usage:
kill pid ... Send SIGTERM to every process listed.
kill signal pid ... Send a signal to every process listed.
kill -s signal pid ... Send a signal to every process listed.
kill -l List all signal names.
kill -L List all signal names in a nice table.
kill -l signal Convert between signal numbers and names.
1 ответ
Решение
Система возвращает истину или ложь, в зависимости от успешности команды.
Используйте%x для захвата вывода:
pinger_pid = %x(ps | grep rake | awk '{print $1}')
puts pinger_pid
system 'kill', '-9', pinger_pid