-
[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