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에 특정한 작업이 표시됩니다.)