Описание среды
Сначала я запускаю bash-shell в фоновом режиме.И записать stdout и stderr в файл журнала ./out
.
(bash ./myshell.sh > ./out 2>&1)&
В оболочке будут запускаться несколько программ, таких как Node.js последовательно.
node program.js --number 1
node program.js --number 2
node program.js --number 3
...
Я могу проверить состояние выполнения по ps
, пример ниже:
$ ps ux | grep shell
user 10001 (skipped...) bash ./myshell.sh
$ ps ux | grep node
user 10002 (skipped...) node program.js --number 1
Задача
А затем,возможно, запустите 2-ю программу в процессе, процессы будут убиты (или прекращены) одновременно.
Подсказка 1
Мы можем предположить 3-я программа будет запущен, потому что 2-я программа остановлена.Фактически, bash-shell и 2-ая программа завершаются по неизвестной причине.
Подсказка 2
Я покинул stderr через (... > ./out 2>&1)&
.Но я не могу получить сообщение из файла журнала.Я просто знаю, 2-я программа была мгновенно остановлена.
Заключение
Я хочу найти инструмент, который может отслеживать мой процесс по конкретному процессуid или другие подобные решения, чтобы сделать это.