[linux] nohup으로 실행되는 프로그램 목록을 얻는 방법

SSH 연결로 CentOS (Linux 배포판)를 실행하는 서버에 액세스하고 있습니다. 항상 로그인 상태를 유지할 수는 없기 때문에 “nohup [command] &”를 사용하여 프로그램을 실행합니다.

nohup을 사용하여 시작한 모든 프로그램 목록을 얻는 방법을 찾을 수 없습니다. “작업”은 로그 아웃하기 전에 만 작동합니다. 그 후 다시 로그인하면 jobs 명령은 아무것도 표시하지 않지만 로그 파일에서 내 프로그램이 여전히 실행중인 것을 볼 수 있습니다.

“nohup”을 사용하기 시작한 모든 프로그램의 목록을 얻을 수있는 방법이 있습니까?



답변

나는 시작하면 $ nohup storm dev-zookeper,

방법 항목 : 사용 jobs,

prayagupd@prayagupd:/home/vmfest# jobs -l
[1]+ 11129 Running                 nohup ~/bin/storm/bin/storm dev-zookeeper &

METHOD2 : 명령 사용 ps.

$ ps xw
PID  TTY      STAT   TIME COMMAND
1031 tty1     Ss+    0:00 /sbin/getty -8 38400 tty1
10582 ?        S      0:01 [kworker/0:0]
10826 ?        Sl     0:18 java -server -Dstorm.options= -Dstorm.home=/root/bin/storm -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dsto
10853 ?        Ss     0:00 sshd: vmfest [priv]

?=> nohup실행중인 프로그램이있는 TTY 열 .

기술

  • TTY 열 = 프로세스와 관련된 터미널
  • STAT 컬럼 = 프로세스 상태
    • S = 중단 가능한 절전 (이벤트가 완료되기를 기다리는 중)
    • l = 다중 스레드입니다 (NPTL pthread처럼 CLONE_THREAD 사용).

참고

$ man ps # 검색 /PROCESS STATE CODES


답변

대신 nohup, 당신은 사용해야합니다 screen. 동일한 결과를 얻습니다. 명령이 “분리”로 실행됩니다. 그러나 화면 세션을 재개하고 “숨겨진”터미널로 돌아가서 해당 터미널 내부의 최근 진행 상황을 볼 수 있습니다.

screen많은 옵션이 있습니다. 가장 자주 사용합니다.

첫 번째 화면 세션을 시작하거나 가장 최근에 분리 된 세션을 인계하려면 :

screen -Rd

현재 세션에서 분리하려면 : Ctrl+ACtrl+D

여러 화면을 시작할 수도 있습니다-문서를 읽어보세요.


답변

표준 출력이있는 경우 “nohup.out”으로 리디렉션하여이 파일을 사용하는 사람을 확인하십시오.

lsof | grep nohup.out


답변

로 시작된 명령 목록을 정확하게 가져올 수는 없지만 명령 nohup을 사용하여 다른 프로세스와 함께 볼 수 있습니다 ps x. 로 시작되는 명령 nohup은 TTY 열에 물음표가 있습니다.


답변

top 명령을 사용할 수도 있으며 사용자 ID는 실행중인 작업과 시간을 표시합니다.

$ top

(실행중인 모든 작업이 표시됨)

$ top -U [user ID]

(사용자 ID에 특정한 작업이 표시됩니다.)


답변