주기적으로 서비스 재시작하려면 어떤식으로 하는게 제일 좋은가요?
글쓴이: jinundeyo / 작성시간: 월, 2009/08/17 - 1:48오후
제목과 같이...
주기적으로 서비스 재시작하려면 어떤식으로 하는게 제일 좋은가요?
주로 쓰시는 방법이 뭔지 알고 싶습니다...
==============================================================
제가 사용하는 방식은... crontab입니다.
1. crontab -e
00,05,10,15,20,25,30,35,40,45,50,55 * * * * su - root '/home/servicerestart.sh'
위와 같이 해서 5분주기로 servicerestart.sh 스크립트를 실행합니다.
servicerestart.sh 안에서 다음과 같이
...
service named restart
exit 0
을 하였습니다.
물론 동작은 잘 됩니다만...
5분에 하나씩 프로세스가 생성이 된 것이 close가 되질 않아서 다음과 같이 남아있습니다.
pstree -p | grep cron ├─crond(3671)─┬─crond(9850)─┬─sendmail(9897)───postdrop(9900) │ ├─crond(9936)─┬─sendmail(9981)───postdrop(9984) │ ├─crond(10011)─┬─sendmail(10056)───postdrop(10058) │ ├─crond(10083)─┬─sendmail(10128)───postdrop(10131) │ ├─crond(10156)─┬─sendmail(10202)───postdrop(10205) │ ├─crond(10228)─┬─sendmail(10273)───postdrop(10275) │ ├─crond(10301)─┬─sendmail(10347)───postdrop(10350) │ ├─crond(10373)─┬─sendmail(10418)───postdrop(10420) │ ├─crond(10448)─┬─sendmail(10495)───postdrop(10498) │ ├─crond(10532)─┬─sendmail(10577)───postdrop(10579) │ ├─crond(10606)─┬─sendmail(10651)───postdrop(10653) │ ├─crond(10678)─┬─sendmail(10723)───postdrop(10725) │ ├─crond(10752)─┬─sendmail(10798)───postdrop(10800) │ ├─crond(10824)─┬─sendmail(10869)───postdrop(10872) │ └─crond(10920)─┬─sendmail(10966)───postdrop(10969) .....
시간이 좀 흐르고 나면 리눅스를 리부팅해야하는 상태가 되기도 합니다.
[b]** 주기적으로 서비스를 재시작하는 다른 좋은 방법이 있거나...
제가 처한 문제를 해결하는 방법을 아시는 분 없으신가요??[/b]
Forums:
프로그램을 손보심이 어떨런지요?
1. IPC를 이용하여 프로세스의 존재 유무를 확인하는 코드를 초기에 집어 넣는다. 즉 프로세스가 살아 있으면
그냥 나오는 구문을 넣어 주시면...똑같은 프로세스가 계속 실행되지 않겠죠?
2. 프로세스가 실행될때 pid를 특정위치에 저장해 놓고 이를 읽어 들여서 프로세스가 존재하면...
pid를 이용하여 프로세스를 죽이고...다시 실행시키시던가...아님 1번에서 처럼 프로세스가 존재함으로
그냥 나오는 구문을 넣어 준다.
결국, 프로그램에서 프로세스를 확인하여 살리던지 그냥 놔두던지 하면 될것 같습니다. ^^;
============================
Stay Hungry, Stay Foolish
============================
Stay Hungry, Stay Foolish
root 권한이 있다면
root 권한이 있다면 /etc/crontab 에 아래와 같이 하지 않고, su로 세션을 열어서 하시는 건 이유가 있나요?
---
Emerging the World!
Emerging the World!
dragonkun님 그런
dragonkun님 그런 간단한 방법이... ㅡ.ㅡ;;
왜 생각을 못 했을까요 ㅠㅠ
아.. 이것저것 한다고 패닉 상태입니다...
그리고, 0/5 는... 어떤 뜻인가요? 5분마다 되는 건가요?
root로 들어가서
root로 들어가서 /etc/crontab 를 해도 위와 같이 프로세스가 남네요...
쩝..
baboda4u님이 말씀하신 것과 비슷하게...
pid를 알아낼 수 있다면 좋겠는데...
pstree 명령어로 최상위 crond 말고 그 밑에 있는 놈들의 pid 들을 가져올 방법이 있나요?
프로세스를 잡으려면 ..
servicerestart.sh 파일 앞쪽에다가...
이런 걸 넣으면 postdrop, sendmail, named 이라는 이름을 가진 프로세스를 찾아서 죽이게 될 겁니다.
그 다음에 다시
등 ...
을 하시면 될 것 같습니다.
---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도
즐겁게 놀아보자.
http://akpil.egloos.com
---------
귓가에 햇살을 받으며 석양까지 행복한 여행을...
웃으며 떠나갔던 것처럼 미소를 띠고 돌아와 마침내 평안하기를...
- 엘프의 인사, 드래곤 라자, 이영도
즐겁게 놀아보자.
crond 밑에 crond를 kill 하려면 어떻게 해야할까요?
정보가
정보가 적습니다.
postfix 를 쓰시나보네요.
named 를 restart 하시려하고요.
crond 가 실행결과를 보고하려고 email 보내다 hang 된 것 같고요.
왜 postfix/sendmail 이 멍때리게 됐는지 정확한 이유는 모르겠지만,
/var/log/messages 나 /var/log/cron 에 특별한 에러메시지가 없다면...
DNS name resolving 을 의심해보세요.
5분마다 named restart 하신다면,
혹시 DHCP 등 유동ip 에 대한 DNS 서비스 같은 것을 간단하게 하시려하는 건가요 ?
OTL
어쩌면 named 에 HUP
어쩌면 named 에 HUP 한번 주면 간단하게 처리될 문제일지도 모르겠네요.
service named reload 명령이 있나요?
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇 개 안돼요~
http://xenosi.de/
https://xenosi.de/
HUP 가 정답인듯
HUP 가 정답인듯 합니다.
named 에 reload 옵션 있습니다.~
댓글 달기