ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bash] 시그널 및 프로세스 관리
    Bash 2023. 10. 27. 21:46
    반응형

    1. 시그널 처리:

    시그널은 프로세스에 보내는 간단한 메시지로, 예외 상황이나 사용자 명령에 응답하는 데 사용됩니다. trap 명령어를 사용하여 시그널을 처리할 수 있습니다.

    예제: Ctrl-C (SIGINT) 시그널 처리

    #!/bin/bash
    
    function handle_sigint() {
        echo "Ctrl-C (SIGINT) received. Cleaning up..."
        # 여기에 종료 또는 정리 작업 추가
        exit 1
    }
    
    trap 'handle_sigint' SIGINT
    
    while true; do
        echo "Running... Press Ctrl-C to exit."
        sleep 1
    done

    설명:

    handle_sigint 함수는 Ctrl-C (SIGINT) 시그널을 처리하며 종료 또는 정리 작업을 수행합니다.
    trap 명령어를 사용하여 Ctrl-C 시그널이 수신되면 handle_sigint 함수가 호출됩니다.

     


    2. 백그라운드 작업 관리:

    백그라운드 작업을 실행하고 관리하는 데 & 연산자와 wait 명령어를 사용할 수 있습니다.

    예제: 백그라운드 작업 실행 및 관리

    #!/bin/bash
    
    # 백그라운드에서 실행할 스크립트를 실행
    ./background_script.sh &
    
    # 백그라운드 작업의 PID를 저장
    bg_job_pid=$!
    
    echo "Background job is running with PID $bg_job_pid"
    
    # 백그라운드 작업이 종료할 때까지 대기
    wait $bg_job_pid
    
    echo "Background job has completed"

    설명:

    background_script.sh를 백그라운드에서 실행하기 위해 & 연산자를 사용합니다.
    백그라운드 작업의 PID를 $!로 저장하고 출력합니다.
    wait 명령어를 사용하여 백그라운드 작업이 종료될 때까지 대기합니다.

     


    3. 프로세스 제어:

    kill 명령어를 사용하여 다른 프로세스를 제어하고 시그널을 보낼 수 있습니다.

    예제: 다른 프로세스에 SIGTERM 시그널 보내기

    #!/bin/bash
    
    # 백그라운드에서 실행 중인 프로세스의 PID
    target_pid=12345
    
    # 다른 프로세스에 SIGTERM 시그널 보내기
    kill -15 $target_pid
    
    echo "SIGTERM signal sent to process $target_pid"

    설명:

    kill 명령어를 사용하여 -15 옵션으로 SIGTERM 시그널을 다른 프로세스에 보냅니다.
    해당 프로세스의 PID를 $target_pid 변수에 설정하여 시그널을 보냅니다.

    반응형

    'Bash' 카테고리의 다른 글

    [Bash] 날짜와 시간  (1) 2023.10.28
    [Bash] 정규 표현식  (0) 2023.10.28
    [Bash] 변수의 범위와 환경 변수  (0) 2023.10.27
    [Bash] 파이프라인 및 리다이렉션  (0) 2023.10.27
    [Bash] 오류 처리  (1) 2023.10.27
Designed by Tistory.