리눅스 어플리케이션 반복 실행 테스트 방법
- 프로그래밍/리눅스 프로그래밍
- 2022. 9. 25.
반응형
어플리케이션을 개발하다 보면, 어플리케이션의 실행을 반복하면서(실행과 종료를 반복) 테스트하고 싶은 경우가 있다.
리눅스에서 이러한 작업이 필요하여, 다음과 같은 두 개의 스크립트 파일을 만들어 테스트를 진행해 보았다.
- 어플리케이션 실행용 쉘 스크립트 : 주기적으로 어플리케이션이 실행 중인지 여부를 확인하여 실행 중이 아닐 경우 어플리케이션을 실행한다.
- 어플리케이션 종료용 쉘 스크립트 : 주기적으로 어플리케이션이 실행 중인지 여부를 확인하여 실행 중일 경우 어플리케이션을 종료한다.
어플리케이션 실행용 쉘 스크립트는 다음과 같이 만들었다.
루프를 돌면서 2초마다 my_app이라는 어플리케이션이 실행 중인지를 확인하여, 실행 중이 아니면 실행한다.
#!/bin/sh
while :
do
echo "Check running.."
check=`ps -ef | grep 'my_app' | wc | awk '{print$1}'`
if [ $check -gt 1 ]
then
echo "already running"
else
echo "run my_app"
./my_app
fi
sleep 2
done
어플리케이션 종료용 쉘 스크립트는 다음과 같이 만들었다.
루프를 돌면서 20초 마다 my_app이라는 어플리케이션이 실행 중인지를 확인하여, 실행 중이면 종료한다.
#!/bin/sh
while :
do
check=`ps -ef | grep 'my_app' | wc | awk '{print$1}'`
if [ $check -gt 1 ]
then
echo "kill my_app"
killall my_app
fi
sleep 20
done
이 두 개의 스크립트를 동시에 실행하면 어플리케이션 반복 실행/종료 테스트를 진행할 수 있다.
물론 이 두 스크립트를 통합하여 하나의 스크립트로 만드는 것도 가능하다.
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
리눅스 타이머 프로그래밍 (2) | 2023.01.15 |
---|---|
리눅스 타이머 프로그래밍 (0) | 2023.01.15 |
nanosleep() - 프로세스/쓰레드의 실행을 멈추는(재우는) 함수 (0) | 2022.04.20 |
Kernel PPS 신호 사용하기 (C source code) (0) | 2022.03.26 |
CURL 라이브러리 사용법 - 임베디드 플랫폼용으로 빌드하기(arm-cross-sysroot 활용) (0) | 2021.03.09 |
리눅스 TUN/TAP 디바이스 프로그래밍 (1) | 2021.01.28 |
프로세스 간 통신(IPC) 프로그래밍 - 메시지큐 (0) | 2021.01.19 |
GPSd를 이용한 GNSS 프로그래밍 (0) | 2020.12.24 |