Примітка. Я перемістив це на переповнення стека, я думаю, що це правильне місце: тут
У мене є дивне питання, я не можу цілком опустити голову. Що я роблю, це запускати функцію під назвою fn_rundumper, яка в основному просто називає код bash: 'pterm -z "cmd.sh" param1 & "
Ось результат цього, який включає фоновий під "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 фону закритий.
Проблема полягає в тому, що я, можливо, захочу запускати багато різних фонових pterms, а також деякі pterms, які не відкриваються як фонові завдання (тобто виконуються окремо). Тож, коли я приходжу в порядок, я просто хочу закрити те, що було відкрито за моїм сценарієм.
Я намагався використовувати завдання -l, щоб побачити PID, які мені потрібно закрити, але, як я щойно описав, це неправильний PID.
Хтось може пояснити, чому це відбувається? а також що мені потрібно зробити, щоб отримати правильний PID? Дякую!
- редагувати - Найкраще, що я можу придумати, - це зробити 'ps | grep pterm 'до і після і порівняйте результати, щоб знайти новий Pterm PID ... робити, але некрасиво :(
pterm -z "$VOE_SCRIPTS_DIR/run_dumper.sh" $PROJECT_DIR
&" стає: "pterm -z" $ VOE_SCRIPTS_DIR / run_dumper.sh "$ PROJECT_DIR &" .... тому задній галочок повинен додавати рівень PID. Також вибачте, я перемістив це в переповнення стека, дивіться посилання