본문 바로가기
프로...Linux

[Ubuntu] 자동 시작 프로그램 생성하기(/etc/init.d)

by 크크다스 2019. 3. 17.
반응형

[Ubuntu] 자동 시작 프로그램 생성하기(/etc/init.d)

DDNS Client 프로그램을 설치하고 수행하려고 하니까

리부팅이나 Network Restart에는 재시작을 해주어여 하는 필요성이 생겨서

자동으로 실행 해주는 방식을 적용하기로 하고 

아래 그 방법에 대해서 기술한다.


[스크립트 작성] /etc/init.d/ddns-noip2 에 작성

#! /bin/sh


### BEGIN INIT INFO

# Provides:        ddns-noip2                        <=== 작성 스크립트 이름

# Required-Start:  $network                         <=== network 재설정시 자동 시작

# Required-Stop:   $network

# Default-Start:   2 3 4 5                             <=== 자동 시작하는 runlevel (/etc/rcX)

# Default-Stop:    0 1 6                               <=== 자동 종료하는 runlevel (/etc/rcX)

# Short-Description: Start/Stop ddns-noip2 client

### END INIT INFO


PROG_TAG=noip2

PROG_PID=${PROG_PID}

PROG_EXE=/usr/local/bin/${PROG_TAG}

# /etc/init.d/ddns-noip: start and stop the no-ip DDNS service


set -e


test -x ${PROG_EXE} || exit 0


export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"


case "$1" in

  start)

echo "Starting DDNS client" "${PROG_TAG}"

${PROG_EXE}

;;

  stop)

echo "Stopping DDNS client" "${PROG_TAG}"

killall `basename ${PROG_EXE}`

;;


  restart)

$0 stop

sleep 1

$0 start

;;


  status)

ps -ef|grep ${PROG_EXE} | grep -v grep | grep ${PROG_EXE} 

;;


  *)

echo "Usage: $0 {start|stop|restart|status}" || true

exit 1

esac


exit 0


[적용하기]

chmod 755 ddns-noip2

update-rc.d ddns-noip2 defaults                    <==== 스크립트에 기술한 RunLevel에 따라 적용

[적용 확인]
cd /etc/init.d
ls ../rc*/*ddns-noip2

../rc0.d/K01ddns-noip2@  ../rc2.d/S01ddns-noip2@  ../rc4.d/S01ddns-noip2@  ../rc6.d/K01ddns-noip2@
../rc1.d/K01ddns-noip2@  ../rc3.d/S01ddns-noip2@  ../rc5.d/S01ddns-noip2@


참고> 삭제시
update-rc.d -f ddns-noip2 remove



반응형

'프로...Linux' 카테고리의 다른 글

[SHELL] bash/sh 스트링(String) 변수 작업  (0) 2019.03.21
[C] BackSlash 제거하기  (0) 2019.03.18
[svn] 일반  (0) 2019.03.14
[GDB] 자주 사용하는 것들  (0) 2019.03.14
[IPC] Inter-Process Communications  (0) 2019.03.14