Що визначає назву процесу в ps aux?


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, чи є спосіб знайти його легше у списку процесів. Мені знадобився певний час, щоб зрозуміти, що я просто десь там працював на передньому плані.


Відповіді:


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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.