!["/etc/init.d/nameofservice start" 대신 "service" 명령을 사용하여 서비스를 시작하고 중지하는 방법은 무엇입니까?](https://linux55.com/image/109679/%22%2Fetc%2Finit.d%2Fnameofservice%20start%22%20%EB%8C%80%EC%8B%A0%20%22service%22%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%EC%8B%9C%EC%9E%91%ED%95%98%EA%B3%A0%20%EC%A4%91%EC%A7%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음 명령을 사용하여 서비스(httpd)를 시작합니다.
/etc/init.d/'name of service' start
위의 httpd 서비스가 service 키워드로 구성되지 않은 경우 다음 명령을 사용하여 서비스를 시작하는 방법은 무엇입니까?
2) 'nameofservice' 서비스가 시작됩니다. 예: service httpd start.
/etc/init.d/nameofservice 대신 서비스 키워드(예: "service 'nameofservice' start"(service 키워드가 있는 옵션 2에서와 같이))를 사용하여 시작 및 중지할 수 있는 서비스를 구성하려면 어떻게 해야 합니까?
답변1
service(8) 명령은 /etc/init.d에서 스크립트를 찾습니다. 해당 스크립트가 없으면 직접 작성해야 할 수도 있습니다. 온라인에서 찾을 수 있습니다.가이드가 이 작업을 도와줄 것입니다..
답변2
아래 스크립트는 Centos 5에서 테스트되었습니다. 현재 날짜와 시간을 인쇄하고 출력을 로그 파일로 전달하고 timed라는 이름으로 저장하는 스크립트를 만듭니다.
vim /opt/timed
#!/bin/bash
while true;do
echo `date` >> /tmp/timed.log
done #script finish here below line enable execute permission of script
chmod +x /opt/timed
이제 예약된 스크립트를 시작하고 중지하는 System V 스크립트를 작성하겠습니다.
vim /etc/init.d/time (save the script only in /etc/init.d directory only with the name of your choice we use name time here)
#!/bin/bash
# chkconfig: 345 80 20
# description: startup script for /opt/timed daemon
start() {
nohup /opt/timed &
}
stop() {
pkill timed
}
case "$1" in
start)
start #calling the start () function
;;
stop)
stop # calling the stop() function
;;
*)
echo "Usage: $0 {start|stop}"
RETVAL=1 #we return the value 1 bcz cmd is not sucessfull
esac
exit 0
chmod +x /etc/init.d/time (enabling the execute permission of script)
service time start (it will start the script timed)
ps –ef | grep timed (we can check that script is running with this command)
스크립트 설명
시간 스크립트는 이 /etc/init.d
디렉터리에 있어야 합니다. chkconfig: 345 80 20
스크립트 345의 필수 구성 요소이며 실행 수준 3, 4 및 5를 나타냅니다. 20은 /etc/rc3/ 디렉터리의 시작 명령 번호가 20(S20)임을 의미합니다. 80은 중지 명령이 /etc/rc3/ 디렉토리에 숫자 80(k80)을 포함한다는 의미입니다.
start()
stop()
데몬 프로세스를 시작하고 중지하는 데 사용되는 함수입니다 . 백그라운드에서 Unix 작업을 실행하고(&, bg 명령 사용) 세션에서 로그아웃하면 프로세스가 종료됩니다. 여러 가지 방법으로 이를 방지할 수 있습니다. nohup을 사용하여 작업을 실행하거나 at, 배치 또는 cron 명령을 사용하여 배치 작업으로 실행합니다. PKill 명령을 사용하면 간단히 이름을 지정하여 프로그램을 종료할 수 있습니다. $1은 첫 번째 매개변수를 사용합니다. $0은 스크립트 이름을 나타냅니다. RETVAL은 환경 변수로 스크립트의 종료 상태에 해당하며, 0이면 스크립트가 성공적으로 실행되었음을 의미하고, 1이면 스크립트가 실패했음을 의미합니다. start 또는 stop 이외의 명령을 지정하면 사용법 메시지가 인쇄됩니다.