1

Я пытаюсь отследить этот скрипт с именем ./launch.sh , который на моей машине в данный момент находится в бесконечном цикле, в котором он вызывает программу Java, сразу падает, затем спит в течение 3 секунд.

ps aux включает в себя:

   31337  0.1  0.1  19716  2180 pts/3    S+   15:13   0:00 bash   
root     31621  0.3  0.3  22912  5492 pts/4    Ss+  15:15   0:00 -bash
root     31810  0.0  0.0   5872   604 pts/1    S+   15:16   0:00 sleep 3
root     31811  0.0  0.0  16872  1268 pts/2    R+   15:16   0:00 ps aux

Как и многие -bash .

Мой скрипт запуска был вызван через ./launch.sh . Этот сценарий начинается не с шебанга.

Версия для Linux выглядит следующим образом:

Linux version 3.2.0-23-virtual (buildd@crested) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP 

Так что в основном интересно, почему launch.sh не отображается в ps aux или есть способ найти его проще в списке процессов. Мне потребовалось некоторое время, чтобы понять, что я просто где-то бегал на переднем плане.

1 ответ1

2

Сценарий, вызываемый как ./launch.sh , просто будет отображаться как bash (или какова ваша оболочка по умолчанию) в выводе ps.

Чтобы выяснить, что PID связан с вашим скриптом, вы можете использовать lsof, в котором перечислены процессы, открывшие файл.

Пример вывода:

$ lsof launch.sh 
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
bash    17085 dennis  254r   REG    8,1       28 2500332 launch.sh
$
$ ps up 17085
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
dennis   17085  0.0  0.1  28292  4260 pts/2    S+   11:28   0:00 bash

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .