Linux에서 대기 명령

Wait Command Linux



기다리다 실행 중인 프로세스가 완료될 때까지 기다리는 Linux의 내장 명령입니다. 기다리다 명령은 특정 프로세스 ID 또는 작업 ID와 함께 사용됩니다. 여러 프로세스가 쉘에서 실행 중이면 마지막 명령의 프로세스 ID만 현재 쉘에서 알 수 있습니다. 이때 wait 명령어가 실행되면 마지막 명령어에 적용된다. wait 명령으로 프로세스 ID 또는 작업 ID가 제공되지 않으면 현재 모든 하위 프로세스가 완료될 때까지 기다렸다가 종료 상태를 반환합니다.

wait 명령의 종료 상태 값은 지정된 마지막 피연산자가 나타내는 명령에 따라 다릅니다. 프로세스가 비정상적으로 종료되면 종료 상태는 128보다 크며 다른 명령의 종료 상태 값과 달라야 합니다. 기다리다 명령은 피연산자 없이 호출하고 현재 셸에서 알려진 모든 프로세스 ID가 종료된 경우 값 0으로 종료됩니다. wait 명령이 오류를 감지하면 1에서 126 사이의 값을 반환합니다. 마지막 프로세스 ID를 알 수 없는 경우 wait 명령은 값 127로 종료됩니다. Linux에서 wait 명령을 사용하는 방법은 이 자습서에 나와 있습니다.







예-1: 여러 프로세스에 대해 wait 명령 사용

다음 스크립트를 실행하면 백그라운드에서 두 개의 프로세스가 실행되고 첫 번째 echo 명령의 프로세스 id가 $process_id 변수에 저장됩니다. wait 명령이 $process_id와 함께 실행되면 다음 명령은 첫 번째 echo 명령의 작업이 완료될 때까지 기다립니다. 두 번째 대기 명령은 ' $! ' 그리고 이것은 마지막으로 실행된 프로세스의 프로세스 ID를 나타냅니다. ' $? '는 wait 명령의 상태 값을 읽는 데 사용됩니다.



#!/bin/bash
던졌다 '대기 명령 테스트1' &
프로세스 ID=$!
던졌다 '대기 명령 테스트2' &
기다리다 $process_id
던졌다직업1상태로 종료$?
기다리다 $!
던졌다직업2상태로 종료$?

산출:



$세게 때리다대기1.sh





예-2: kill 명령 사용 후 대기 명령 테스트

다음 스크립트에서는 프로세스를 종료한 후 wait 명령을 실행합니다. sleep 명령은 백그라운드 프로세스로 실행되고 kill 명령은 실행 중인 프로세스를 종료하기 위해 실행됩니다. 그 대기 명령이 종료된 프로세스의 프로세스 ID로 실행된 후. 출력에는 종료된 프로세스의 프로세스 ID가 표시됩니다.

#!/bin/bash
던졌다 '대기 명령 테스트'
스물 &
PID=$!
죽임 $pid
기다리다 $pid
던졌다 $pid종료되었습니다.

산출:



$세게 때리다대기2.sh

예-3: 종료 상태 값 확인

다음 스크립트에서 함수 확인하다() 두 개의 인수 값에 의해 호출됩니다. 튜토리얼 시작 부분에서 wait 명령이 성공적으로 실행되면 종료 값이 0이 되고 wait 명령이 오류를 감지하면 1에서 126 사이의 값을 반환한다고 설명했습니다. 스크립트를 실행한 후 두 번째 인수로 0을 전달하면 value then wait 명령은 성공적으로 종료되고 0보다 큰 값을 전달하면 성공적으로 종료되지 않습니다.

#!/bin/bash
기능확인하다()
{
던졌다 '1초 동안 잠'
$ 1
출구 $ 2
}
확인하다$ 1 $ 2 &
NS=$!
던졌다 상태 확인 중'
기다리다 $b && 던졌다좋아요|| 던졌다괜찮지 않다

산출:

$세게 때리다wait3.sh 0
$세게 때리다wait3.sh 5

이 튜토리얼이 use wait 명령을 올바르게 배우는 데 도움이 되기를 바랍니다. Linux에는 다음과 같은 또 다른 명령이 있습니다. 일정 시간 동안 기다려야 하지만 이러한 명령 간에는 몇 가지 차이점이 있습니다. 에 대해 알고 싶으시다면 수면 명령 그런 다음 이 링크를 방문할 수 있습니다.