어떤 스크립트 bash가 실행되고 있는지 어떻게 알 수 있나요?

어떤 스크립트 bash가 실행되고 있는지 어떻게 알 수 있나요?

프로세스가 실행 중인 스크립트를 어떻게 확인합니까? 내가 사용할 때 :

ps -u user

다음과 같은 결과가 나타납니다.

10005194 26932  0.0  0.0 112700  1544 ?        Ss   Jun03   0:00 -bash
10005194 27117  0.0  0.0 112700  1528 ?        Ss   Apr24   0:00 -bash
10005194 27164  0.0  0.0 112700  2040 ?        Ss   Jun06   0:00 -bash
10005194 27404  0.0  0.0 112700  1544 ?        Ss   May27   0:00 -bash
10005194 27484  0.0  0.0 112700  1528 ?        Ss   Apr23   0:00 -bash
10005194 27531  0.0  0.0 112700  1528 ?        Ss   May22   0:00 -bash
...

수백 줄이 있습니다. 이 사용자가 많은 스크립트를 실행하고 있다는 것을 알고 있지만 스레드를 차지하는 스크립트의 범위를 좁히고 싶습니다. 이를 수행할 수 있는 방법이 있습니까?

답변1

w("넓은"을 의미) 옵션을 사용하세요 .

man ps(검색 ) 에서 wide:

w 넓은 출력. 무한한 너비를 얻으려면 이 옵션을 두 번 사용하십시오.

예를 들어 ps ww -u cas:

$ ps ww -U cas | grep bash
 1350 pts/0    Ss     0:00 -bash
18345 pts/34   S      0:00 /bin/bash /home/cas/bin/myscript.sh
21293 pts/34   Ss+    0:00 bash

이것은 -bash로그인 쉘입니다.

plain bash은 로그인이 아닌 대화형 쉘입니다. tty pts/34는 동일하므로 bash 쉘의 상위 쉘(또는 먼 조부모)임을 알 수 있습니다 myscript.sh.

/usr/env/bin bash를 사용하면 어떤 스크립트가 실행 중인지 확인할 수 없습니다. 대신, bash 실행 파일이 실행 중인 컴퓨터에 적합한지 정확하게 지정해야 합니다.

답변2

@cas가 제안한 대로 ps몇 가지 정보를 보여줄 수 있습니다. 표시할 옵션 추가명령줄, 이는 올바른 방향으로 나아가는 단계입니다. 이 스크립트가 주어지면:

#!/usr/bin/env bash
while true
do
date
sleep 10
done

ps -ww다음과 같은 프로세스 라인을 표시하는 것이 좋습니다 .

  9417 pts/5    00:00:00 bash
  9496 pts/5    00:00:00 sleep

그러나 ps -fwwl -u $USER이는 다음과 같이 표시됩니다.

0 S tom        9417   9416  0  80   0 - 29405 -      18:08 pts/5    00:00:00 bash ./foo
0 S tom        9419   9417  0  80   0 - 28111 -      18:08 pts/5    00:00:00 sleep 10

내가 그것을 실행했기 때문이다 ./foo. 물론 내 경로에서 "foo"를 실행하면 "./"가 발생하지 않습니다. 두 경우 모두 실행되는 실제 스크립트는 값 $PATH과 현재 작업 디렉터리(스크립트가 시작될 때)에 따라 달라집니다. procfs가 있는 일부 시스템(예: Linux)의 경우 다음 정보를 얻을 수 있습니다.

이 모든 것을 고려하면 ps전체 경로 이름이 있거나 없는 스크립트의 출력을 구문 분석하는 스크립트를 작성하는 데 충분한 정보(적어도 Linux의 경우)가 있습니다.

이상하게도 대부분의 쉘은 열린 스크립트 파일 설명자가 있는 것처럼 동작하기 때문에 이 정보를 제공할 것으로 예상했습니다 lsof(그러나 빠른 검사에서는 이를 볼 수 없습니다). 따라서 ps쉘의 환경을 분석하는 것이 완전한 솔루션을 얻는 방법인 것 같습니다.

추가 자료:

관련 정보