쉘 스크립트를 통해 COBOL 프로그램을 실행할 때 내 작업 번호를 어떻게 알 수 있나요?
답변1
당신이 하고 있는 일에 대해 더 자세히 설명해 주실 수 있나요? 귀하의 프로그램과 관련된 여러 "숫자"가 있습니다.
노트:내 예에서 달러 기호( $
)는 명령 프롬프트를 나타내며 명령의 일부로 입력하기 위한 것이 아닙니다.
프로세스 번호
프로그램이 Unix에서 실행되면 프로세스 ID가 할당됩니다. 이 프로그램이 있고
sleep
100초 동안 실행한다고 가정해 보겠습니다 .$ sleep 10000
그런 다음 명령을 사용하여 프로세스 ID를 찾을 수 있습니다
ps
. 프로세스 ID는 입니다9263
. 예를 들면 다음과 같습니다.$ ps -eaf|grep sleep saml 9263 5736 0 05:48 pts/1 00:00:00 sleep 10000
백그라운드 작업
프로그램이 백그라운드로 전환되면 실행 중인 셸에 직접 연결하지 않고도 계속 실행할 수 있습니다.
$ sleep 10000 & [1] 9370
sleep
여기서는 10000초 동안 프로그램을 실행합니다 .&
끝에 있는 앰퍼샌드( )는 쉘이 배경으로 설정하도록 지시합니다. 작업이 백그라운드로 전환되면 작업 번호가 다시 할당됩니다. 이 경우 작업 #1이 할당됩니다.9370
프로세스 ID입니다 .다음 명령을 사용하여 어떤 작업이 실행되고 있는지 확인할 수 있습니다
jobs
.$ jobs [1]+ Running sleep 10000 &
작업 번호를 사용하여 이 프로세스를 처리하거나 종료하거나 다시 포그라운드로 가져올 수 있습니다.
$ kill %1 $ fg -or- $ fg %1
at 및 배치 명령
작업 # 용량에 "숫자"가 나타나는 다른 위치가 있습니다. 명령을 사용하여 번호가 매겨진 예약된 작업을 대기열에 추가
at
하거나batch
할당합니다.$ at -f mycrontest.sh 10pm tomorrow job 14 at Sun Jul 8 22:00:00 2007
컴퓨팅 클러스터 기술
한 단계 더 나아가 사이트가 클러스터링 기술을 사용하는 경우그리드 스케줄러/그리드 엔진,스럼, 또는다른 사람, 이러한 시스템은 또한 각 개별 작업에 작업 #을 할당합니다.
답변2
#!/bin/bash
cobol_program &
echo "The COBOL program is running in the background with PID: $!"
man
"특수 매개변수" 아래 페이지를 참조하십시오 .bash