Чтобы автоматизировать задачи системного администрирования, я записал следующую строку коды оболочки:Как запустить pkill при вызове оболочки для выполнения команды?
bash -c 'pkill -TERM -f java; true'
Проблема заключается в том, что pkill убивает Баш сразу после pkill
выполнения команды, и поэтому последующие команды не имеют шансов выполнить.
Помимо разделения их на две линии:
bash -c 'pkill -TERM -f java'
bash -c 'true'
Есть ли другой обходной путь?
Невозможно воспроизвести: 'sleep 60 & bash -c 'pkill -TERM -f sleep; echo true'' убивает 'sleep', но все же печатает« true »для терминала. Трюк, иногда используемый с 'grep', может помочь, хотя:' bash -c 'pkill -TERM -f \ java; true''. – chepner
@chepner проблема не может быть воспроизведена в osx, вы должны иметь возможность воспроизвести ее в linux. –