일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코드이그나이터
- jquery
- html
- MYSQL
- linux
- 자바스크립트
- Eclipse
- codeigniter
- 맥
- Oracle
- SQL
- IPO
- 오라클
- 6월 공모주 청약 일정
- 주식 청약 일정
- 자바
- css
- 제이쿼리
- php
- Stock
- 주식 청약
- 리눅스
- 공모주
- java
- JavaScript
- 공모주 청약
- 공모주 청약 일정
- 7월 공모주 청약 일정
- Stock ipo
- 주식
- Today
- Total
개발자의 끄적끄적
[linux]리눅스에서 특정명령어 또는 서비스 자동시작하게 하는 방법 본문
[linux]리눅스에서 특정명령어 또는 서비스 자동시작하게 하는 방법
- /etc/rc.d/rc.local 에 해당 실행 명령어나 스크립트 등록
- /etc/rc.d/rc3.d 같은 런레벨 파일에 바로 등록
등록 방법은 아래를 참고하세요.
1번 등록 시 주의사항은 일반적인 리눅스 명령어 사용시에는 절대경로로 사용하셔야합니다.
[root@ltm6-demo rc.d]# ls init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit [root@ltm6-demo rc.d]# /bin/ls init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit [root@ltm6-demo rc.d]# |
위 처럼 명령어의 절대경로로 등록해주어야 정상 동작합니다.
위 처럼 실행권한이 있어야합니다. 없다면 chmod +x /etc/rc.d/rc.local 실행권한을 부여해줍니다.
[root@ltm6-demo ~]# cd /etc/rc.d
drwxr-xr-x. 2 root root 4096 Jan 2 14:14 init.d
-rwxr-xr-x 1 root root 2617 Jul 13 2016 rc
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc0.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc1.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc2.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc3.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc4.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc5.d
drwxr-xr-x. 2 root root 4096 Sep 5 10:44 rc6.d
-rwxr-xr-x. 1 root root 253 Jan 3 11:11 rc.local
-rwxr-xr-x 1 root root 20199 Jul 13 2016 rc.sysinit
리눅스는 런레벨이란 것이 있습니다. 일반적으로 보여지는 그래픽 화면은 런레벨 5이고 흔히 콘솔이라고 하는
검은 화면은 3번입니다. 그래서 자동시작할 서비스가 있다면 3, 5번에 등록하면 됩니다.
모든 런레벨에 적용하고 싶다면 저기 붉은색
/etc/rc.d/rc.local
에 추가하시면 됩니다. 그 이유는 0~6번의 런레벨 파일을 열어보면 마직막엔 /etc/rc.d/rc.local 을 실행하기 때문입니다.
예제로 런레벨 3번을 열어보겠습니다.
[root@ltm6-demo rc3.d]# pwd /etc/rc.d/rc3.d [root@ltm6-demo rc3.d]# ll total 0 lrwxrwxrwx 1 root root 19 Sep 3 2015 K10saslauthd -> ../init.d/saslauthd lrwxrwxrwx. 1 root root 20 Mar 11 2014 K50netconsole -> ../init.d/netconsole lrwxrwxrwx 1 root root 17 Feb 4 2016 K75ntpdate -> ../init.d/ntpdate lrwxrwxrwx 1 root root 20 Sep 3 2015 K87multipathd -> ../init.d/multipathd lrwxrwxrwx. 1 root root 21 Mar 11 2014 K87restorecond -> ../init.d/restorecond lrwxrwxrwx 1 root root 15 Sep 3 2015 K89rdisc -> ../init.d/rdisc lrwxrwxrwx 1 root root 19 Sep 3 2015 K92ip6tables -> ../init.d/ip6tables lrwxrwxrwx 1 root root 18 Sep 3 2015 K92iptables -> ../init.d/iptables lrwxrwxrwx 1 root root 22 Jan 14 2016 S02lvm2-monitor -> ../init.d/lvm2-monitor lrwxrwxrwx. 1 root root 16 Sep 29 2014 S07iscsid -> ../init.d/iscsid lrwxrwxrwx 1 root root 17 Mar 7 2016 S10network -> ../init.d/network lrwxrwxrwx. 1 root root 16 Mar 11 2014 S11auditd -> ../init.d/auditd lrwxrwxrwx 1 root root 17 Sep 3 2015 S12rsyslog -> ../init.d/rsyslog lrwxrwxrwx 1 root root 15 Apr 4 2016 S13iscsi -> ../init.d/iscsi lrwxrwxrwx. 1 root root 31 Mar 11 2014 S14xe-linux-distribution -> ../init.d/xe-linux-distribution lrwxrwxrwx 1 root root 26 Jan 14 2016 S25blk-availability -> ../init.d/blk-availability lrwxrwxrwx 1 root root 15 Mar 7 2016 S25netfs -> ../init.d/netfs lrwxrwxrwx 1 root root 19 Jan 14 2016 S26udev-post -> ../init.d/udev-post lrwxrwxrwx 1 root root 14 Apr 4 2016 S55sshd -> ../init.d/sshd lrwxrwxrwx 1 root root 14 Feb 4 2016 S58ntpd -> ../init.d/ntpd lrwxrwxrwx 1 root root 16 Aug 26 2015 S64mysqld -> ../init.d/mysqld lrwxrwxrwx 1 root root 17 Dec 11 2015 S80postfix -> ../init.d/postfix lrwxrwxrwx 1 root root 15 Dec 11 2015 S90crond -> ../init.d/crond lrwxrwxrwx. 1 root root 34 Mar 18 2014 S98cloud-set-guest-password -> ../init.d/cloud-set-guest-password lrwxrwxrwx. 1 root root 35 Mar 18 2014 S98cloud-set-guest-sshkey.in -> ../init.d/cloud-set-guest-sshkey.in lrwxrwxrwx 1 root root 11 Sep 5 10:44 S99local -> ../rc.local [root@ltm6-demo rc3.d]#
|
대부분의 시작실행 스크립트는 /etc/init.d/ 에 존재합니다.
별도로 개발한 스크립트를 적용하고 싶다면 아래 샘플을 참고해서 적용하면 됩니다.
런레벨 3번과 5번에 적용한 모습니다. 중요 서비스는 자동시작되게 다이렉트로 등록한 모습입니다.
[root@mailstr ~]# cd /etc/init.d/ [root@mailstr init.d]# ls
mysqld tm6-engine tm6-engine-auto tm6-tomcat
[root@mailstr init.d]# cd /etc/rc3.d/ [root@mailstr rc3.d]# ln -s ../init.d/tm6-tomcat K99tm6-tomcat [root@mailstr rc3.d]# ln -s ../init.d/tm6-tomcat S99tm6-tomcat
[root@mailstr rc3.d]# ln -s ../init.d/tm6-engine K99tm6-engine [root@mailstr rc3.d]# ln -s ../init.d/tm6-engine S99tm6-engine
[root@mailstr rc3.d]# ln -s ../init.d/tm6-engine-auto K99tm6-engine-auto [root@mailstr rc3.d]# ln -s ../init.d/tm6-engine-auto S99tm6-engine-auto
[root@mailstr rc3.d]# ln -s ../init.d/mysqld K98mysqld [root@mailstr rc3.d]# ln -s ../init.d/mysqld S98mysqld
[root@mailstr rc3.d]# cd ../rc5.d/ [root@mailstr rc5.d]# ln -s ../init.d/tm6-tomcat K99tm6-tomcat [root@mailstr rc5.d]# ln -s ../init.d/tm6-tomcat S99tm6-tomcat
[root@mailstr rc5.d]# ln -s ../init.d/tm6-engine K99tm6-engine [root@mailstr rc5.d]# ln -s ../init.d/tm6-engine S99tm6-engine
[root@mailstr rc5.d]# ln -s ../init.d/tm6-engine-auto K99tm6-engine-auto [root@mailstr rc5.d]# ln -s ../init.d/tm6-engine-auto S99tm6-engine-auto
[root@mailstr rc5.d]# ln -s ../init.d/mysqld K98mysqld [root@mailstr rc5.d]# ln -s ../init.d/mysqld S98mysqld [root@mailstr rc5.d]# |
이렇게 /etc/rc.d/rc.local 에 등록해도 됩니다.
/etc/rc.d/rc.local
[root@ltm6-demo rc2.d]# cat /etc/rc.d/rc.local #!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff.
# MTS Agent # /home/talk/agent_talk/bin/control start
[root@ltm6-demo rc2.d]# [root@ltm6-demo rc2.d]# [root@ltm6-demo rc2.d]# |
출처: https://blog.thundermail.co.kr/81 [ThunderMail's Blog]
'개발 > linux' 카테고리의 다른 글
[linux] 리눅스 날짜별 폴더 생성 스크립트 (0) | 2020.08.18 |
---|---|
[쉘스크립트] crontab 및 mysqldump 실행하여 주기적 DB백업 수행 (0) | 2020.08.17 |
[CentOS 7] 서비스( Service ) 등록, 관리 [펌] (0) | 2020.07.13 |
[Linux] Apache 디렉토리 리스팅 막기 [펌] (0) | 2020.07.12 |
[CentOs] nginx 설치하기 (0) | 2020.07.10 |