1882 |
[질문] Fortigate 에서 웹도메인 to 내부IP로 포워딩이 가능한… (5) |
라이크유 |
2023-02 |
14009 |
0 |
2023-02
14009
1 라이크유
|
1881 |
(도움) 집에서 게임서버 구축 (11) |
oing1215 |
2023-02 |
14000 |
0 |
2023-02
14000
1 oing1215
|
1880 |
외부접속으로 NAS랑 wol 기능 쓰고 싶습니다. (2) |
phgphg13 |
2018-01 |
13981 |
0 |
2018-01
13981
1 phgphg13
|
1879 |
[Mikrotik] VPN PPTP방식 Point to Point 연결 - IP 수동할당 (4) |
HEUo김용민 |
2014-04 |
13970 |
0 |
2014-04
13970
1 HEUo김용민
|
1878 |
회사 전용회선간 전송속도가 느릴 때 생각해 볼만한 조치사항에… (3) |
딩규 |
2017-12 |
13943 |
0 |
2017-12
13943
1 딩규
|
1877 |
시놀로지 SFTP 가 FTP 보다 많이 느릴까요? (3) |
삼카 |
2023-08 |
13926 |
0 |
2023-08
13926
1 삼카
|
1876 |
cat 5 4가닥 기가비트 환경 문의 (10) |
푸하히 |
2015-08 |
13911 |
0 |
2015-08
13911
1 푸하히
|
1875 |
랜카드를 이러케만들어주실분 . (3) |
골라 |
2017-12 |
13908 |
0 |
2017-12
13908
1 골라
|
1874 |
C6509 부팅중 에러.. ㅠㅠ (5) |
강명호 |
2014-05 |
13896 |
3 |
2014-05
13896
1 강명호
|
1873 |
스위치 두대를 연결할 려고 합니다. (3) |
송승화 |
2017-04 |
13892 |
2 |
2017-04
13892
1 송승화
|
1872 |
mac address 따라 인터넷이 안되는 경우 (12) |
샐리 |
2017-08 |
13891 |
0 |
2017-08
13891
1 샐리
|
1871 |
원격 데스크탑 서비스의 라이센스가 꼭 필요한가요? (4) |
아리에나이 |
2016-08 |
13886 |
1 |
2016-08
13886
1 아리에나이
|
1870 |
Unifi CPE 설치 후기 1편 (9) |
이희주 |
2022-12 |
13884 |
0 |
2022-12
13884
1 이희주
|
1869 |
포티게이트 60d로 내부서버 설정 문의 (4) |
공부해서남… |
2016-10 |
13884 |
0 |
2016-10
13884
1 공부해서남…
|
1868 |
Soligate 5000에 미크로틱 라우터OS NAT 성능 (6) |
성기사 |
2017-11 |
13880 |
0 |
2017-11
13880
1 성기사
|
1867 |
미크로틱장비 L4스위치로 사용 (2) |
공돌이 |
2014-09 |
13858 |
5 |
2014-09
13858
1 공돌이
|
1866 |
랩 매니지먼트 네트워크 업데이트 |
송주환 |
2022-12 |
13835 |
0 |
2022-12
13835
1 송주환
|
1865 |
안녕하세요 시스코 스위치 질문드립니다 (4) |
chaeray |
2022-12 |
13818 |
0 |
2022-12
13818
1 chaeray
|
1864 |
서버에 MGMT 포트 질문입니다. (7) |
쿰척쿰척 |
2023-04 |
13780 |
0 |
2023-04
13780
1 쿰척쿰척
|
1863 |
공유기 밑에 공유기 설정 관련 질문입니다(feat. LG U+) (2) |
anyback |
2016-12 |
13776 |
1 |
2016-12
13776
1 anyback
|
세션 유지조건을 확인해보셔야 할것같아요...
그러고 보니 ssh 로 접속하여 sh ck.sh & 실행후 ssh 세션이 끊기면 프로세스가 종료되는거 같네요 ..
주기적으로 제가 ssh 세션을 안 끊었을 때는 10시간 가까이도 쉘파일이 중지 안되였던거 같습니다.
오늘 빙챗으로 쉘 스크립트 작성을 위해 도움을 받았는데,
질문을 잘 하면 원하는 답에 가깝게 결과를 얻을 수 있으니 Q/A 보다 훨씬 좋은 것 같습니다.
서비스로 등록시키거나,
부팅 가능한 시스템이면 cron에 @reboot 를 이용해서 시작하면서 실행하거나,
매분마다 실행해도 되면 역시 cron에 등록시켜서 이용해 보겠습니다.
다만, cron은 최소 1분 주기이므로 혹여 1분내에 여러차례 수행이 완료될 수 있는 경우에는 실행시간과 프로세스 기 실행여부 등을 고려하여 한정적으로 루프를 돌아주는 방법도 있습니다.
아래는 예컨데 /serv/ping/do_ping.sh 가 10초정도 소요된다 가정할때 1분에 약 6회정도 프로세스를 체크해서 반복해서 돌려주는 쉘 스크립트 샘플 입니다.
해당 쉘을 cron에 등록해서 분마다 실행시켜 주면 됩니다.
#!/bin/bash
for i in {1..6}
do
# 프로세스 상태 확인
if ps -ef | grep /serv/ping/do_ping.sh | grep -v grep > /dev/null
then
# 실행 중인 경우 10초 대기 후 재실행
sleep 10
else
# 실행 중이지 않은 경우 실행
/serv/ping/do_ping.sh &
fi
done
c_running() {
ps ax | grep -v grep | grep -q "$*"
}
do_ping() {
if [ $? -eq 1 ]; then
/bin/sh /serv/ping/do_ping.sh > /serv/logs/ping-log
fi
}
while true; do
c_running "/bin/sh /serv/ping/do_ping.sh"
do_ping
sleep 5
done
수정 사항:
1. ps ax|grep -v grep|grep -c "$*"을 ps ax | grep -v grep | grep -q "$*"로 변경했습니다. -q 옵션을 사용하면 grep이 찾은 결과의 개수를 출력하지 않고, 찾은 결과가 있으면 종료 상태 0을 반환합니다. 이렇게 하면 c_running() 함수에서 불필요한 출력을 하지 않습니다.
2. do_ping do_ping을 do_ping으로 변경했습니다. 이렇게 하면 do_ping 함수를 호출할 수 있습니다.
수정된 스크립트를 사용하면 문제가 해결될 것입니다. 이 스크립트를 실행하면, 5초마다 do_ping.sh 스크립트가 실행 중인지 확인하고, 실행 중이 아니면 해당 스크립트를 실행하여 결과를 로그 파일에 기록합니다.
---------------------------------
chatGPT가 이렇게 하라네요~?!
실행해보진 않았습니다. ^^