1. Wel 의 실행 과정
※ /etc/wel.root에 대하여
Wel의 초기 개발 버전부터 설계되어 있었던 기능이었으나 여러가지 이유로
인하여 배포할 때 이 기능은 제거 되었습니다. 이것은 서버 관리자가
/etc/wel.root에 Wel 프로그램을 작성하여 root의 권한으로 실행할 수 있는
것으로 계정 사용자의 잘못된 Wel의 사용으로 인한 장애를 극복할 수 있는
수단을 제공하게 됩니다. 가장 좋은 예로 프로그램을 잘못 작성하여 무한
루프에 빠지게 되면 그 프로그램에서 timeout()함수를 호출하여 실행시간을
제한해 두었다면 문제가 없지만 그렇지 않으면 프로세스를 강제 종료하지
않는 한 무한히 실행을 하게 됩니다. 최악의 경우를 가정하여 아래와 같이
test.wel이란 프로그램을 작성했다고 가정합니다.
---------------------------------------------
#/bin/wel
i= 1;
while(i <= 10) i= 2;
---------------------------------------------
위와 같이 프로그램을 작성한 후, 이 프로그램을 /etc/crontab에서 10분
간격으로 실행을 하도록 했다면 종료가 되지 않고 무한히 실행되기 때문에
10분 마다 프로세스가 생성되고 무한히 실행하여 시간이 경과하면 메모리가
소진되어 결국 서버가 다운될 것입니다.
이 기능을 다시 사용하게 된 가장 큰 이유는 사용자의 실수로 위와 같은
프로그램이 실행될 때 이를 통제할 수 있는 수단을 /etc/wel.root가 제공할
수 있기 때문입니다.
기본적으로 설치되는 /etc/wel.root는 위의 예제처럼 무한 루프를 실행하는
프로그램을 종료시킬 수 있도록 하기 위하여 실행 시간을 30초로 제한 하도록
프로그래밍 하였습니다. 서버 관리자는 실정에 알맞게 /etc/wel.root를 수정
하시면 될 것입니다. 만일 특정 프로그램을 실행시간 제한 없이 실행하기를
원한다면 해당 프로그램 내에서 timeout(0); 을 호출하여 실행시간 제한을
해제하시면 됩니다.
|