Примечание: я переместил это в переполнение стека, я думаю, что это правильное место: здесь
У меня странная проблема, я никак не могу разобраться. Я запускаю функцию с именем fn_rundumper, которая в основном просто вызывает код bash: 'pterm -z "cmd.sh" param1 &'
Вот вывод того, что включает в себя фоновый pid "27938858":
fn_rundumper
running fn_dumper...
[1] 27938858
fn_dumper...done
Затем я смотрю на номера работ, которые выполняются это также показывает PID "27938858":
jobs -l
[1] + 27938858 Running $(pterm -z "$SCRIPTS_DIR/run_dumper.sh" $VO
Затем я делаю команду ps, чтобы посмотреть, какие запущены pterms:
ps | grep pterm
24285189 ? 00:00:00 pterm
27938859 ? 00:00:00 pterm
Это дает PID "27938859". Это отличается от других!
Когда я убиваю PID 27938858, кажется, ничего не происходит. Когда я убиваю PID 27938859, фоновый pterm закрывается.
Проблема в том, что мне может понадобиться запустить много разных фоновых программ, а также некоторые, которые не открываются в качестве фоновых задач (т.е. запускаться отдельно). Поэтому, когда я прихожу в порядок, я просто хочу закрыть открытые мне с помощью моего скрипта.
Я пытался использовать задания -l, чтобы увидеть PID, которые мне нужно закрыть, но, как я только что описал, это неправильный PID.
Кто-нибудь может объяснить, почему это происходит? а также что мне нужно сделать, чтобы получить правильный PID? Спасибо!
- edit - Лучшее, что я могу придумать, это сделать 'ps | grep pterm 'до и после и сравните результаты, чтобы найти новый pterm PID ... выполнимо, но безобразно :(