Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- NPM
- Spring
- hadoop
- SPC
- Eclipse
- JavaScript
- react
- xPlatform
- mybatis
- table
- es6
- plugin
- tomcat
- MSSQL
- Android
- vaadin
- SSL
- IntelliJ
- Kotlin
- Python
- R
- Express
- Sqoop
- SQL
- window
- 보조정렬
- GIT
- mapreduce
- 공정능력
- Java
Archives
- Today
- Total
DBILITY
centos 7 systemd 서비스 작성 본문
반응형
RHEL7부터 커널버전이 3.X로 바뀌었다더니만,
전통적인 방법으로 SysV... /etc/rc.d/init.d에 스크립트를 작성하고 chkconfig,service로 제어하던 것만 기억하고 있는데,
centos 7은 다르구만. 세상이 달라졌네..언제부터 달라진건지 원ㅎㅎ
서비스데몬의 자동시작 스크립트는 필수적이니 정리해 보자.
아래는 systemclt 명령중 자주 쓰는 옵션(?)이다.
https://potatogim.net/wiki/Systemctl
[root@big-master ~]# systemctl --help
systemctl [OPTIONS...] {COMMAND} ...
#주로 사용하는 명령은 아래와 같다
#------------------------------ 생략 --------------------------------
start NAME... Start (activate) one or more units
stop NAME... Stop (deactivate) one or more units
reload NAME... Reload one or more units
restart NAME... Start or restart one or more units
kill NAME... Send signal to processes of a unit
is-active PATTERN... Check whether units are active
is-failed PATTERN... Check whether units are failed
status [PATTERN...|PID...] Show runtime status of one or more units
show [PATTERN...|JOB...] Show properties of one or more
enable NAME... Enable one or more unit files
disable NAME... Disable one or more unit files
reenable NAME... Reenable one or more unit files
delete NAME... Remove one or more snapshots
#------------------------------ 생략 --------------------------------
[root@big-master ~]# cd /etc/systemd/system
[root@big-master system]# ls
basic.target.wants default.target multi-user.target.wants system-update.target.wants
dbus-org.freedesktop.NetworkManager.service default.target.wants sockets.target.wants
dbus-org.freedesktop.nm-dispatcher.service getty.target.wants sysinit.target.wants
[root@big-master system]# ls multi-user.target.wants/
auditd.service irqbalance.service NetworkManager.service remote-fs.target sshd.service tuned.service
crond.service kdump.service postfix.service rsyslog.service sysstat.service
서비스 시작시 통상적으로 내가 필요한 것은 기본 다섯 가지다.
- 자동시작
- 수동시작
- 시작시 선행 실행 서비스
- 재시작
- 종료
Section | Option | Description |
Unit | Description | 서비스설명,systemctl status에 표시됨 |
After | Unit이 시작되는 순서를 정한다. 명시된 Unit이 시작된 후에 현재 Unit 실행, Before는 정반대 |
|
Requires | 서비스 종속성 기술(이 Unit과 함께 시작됨 주의) 기술된 서비스 중 하나라도 시작되지 않으면 활성화 불가 |
|
Wants | Requires에 비해 낮은 결합도를 보이는 서비스 기술 기술된 서비스가 시작되지 않더라도 활성화 됨 |
|
Conflicts | Requires와 반대 | |
Service | Type | ExecStart 및 옵션 기능에 영향을주는 단위 프로세스 시작 유형 → simple - 기본값, 시작된 프로세스가 서비스의 주프로세스 → forking - 주프로세스가 되는 하위프로세스 생성, 하위시작 후 종료 → oneshot - 연관Unit시작전에 프로세스 종료 → dbus - 주프로세스가 D-Bus 획득 후에 결과 연관Unit이 실행됨 → notify - sd_notify () 로 알림 메시지를 보낸 후에 만 연관Unit 시작 → idle - 모든 작업이 완료될때까지 대기 후 실행 |
PIDFile | 필요한 경우 서비스의 주 프로세스에 대한 상수 PID를 보유 할 PID 파일 | |
ExecStart | Unit이 시작될 때 실행될 명령 또는 스크립트를 지정. ExecStartPre 및 ExecStartPost는 ExecStart 전후에 실행할 명령 기술 oneshot은 순차적으로 실행되는 여러 개의 명령 지정 가능 |
|
ExecStop | Unit이 중지되었을 때 실행될 명령 또는 스크립트를 지정 | |
ExecReload | Unit이 Reload되었을 때 실행될 명령 또는 스크립트를 지정 | |
Restart | systemctl에 의한 클린 중지를 제외하고, 프로세스가 종료 된 후에 재시작 | |
RemainAfterExit | yes로 설정하면 모든 프로세스가 종료되어도 활성상태로 인식 | |
User | 사용자 | |
Group | 그룹 | |
Environment | script에서 사용할 환경변수,오류가 나길래 그냥 해봄 | |
Install | Alias | Unit 별칭 |
RequiredBy | 현재 서비스에 종속성(Requires)을 갖는 Unit 지정 | |
WantedBy | 현재 서비스에 약한 종속성(Wants)을 갖는 Unit 지정 | |
Also | 현재 서비스와 함께 설치,제거될 Unit 지정 | |
DefaultInstance | Unit이 사용가능한 기본 인스턴스 지정 |
※ 영어가 딸려 해석이 부드럽지 못하니 이해 바란다. ㅎㅎ
zookeeper로 샘플을 작성한다.
시작,종료등을 해보고 오류가 있는건 서비스마다 적용해야 할 듯~
[root@big-master ~]# cd /etc/systemd/system
[root@big-master system]# vi zookeeper.service
[Unit]
Description = Zookeeper ( ver. 3.4.11 )
After = network.target
Requires = network.target
[Service]
Type=forking
User=zookeeper
Group=zookeeper
SyslogIdentifier=zookeeper
WorkingDiretory=/zookeeper
Environment=JAVA_HOME=/jdk
Environment=ZOOKEEPER_HOME=/zookeeper
Environment=ZOO_LOG_DIR=/zookeeper/logs
Restart=always
RestartSec=0
ExecStart = /zookeeper/bin/zkServer.sh start
ExecStop = /zookeeper/bin/zkServer.sh stop
ExecReload = /zookeeper/bin/zkServer.sh restart
SuccessExitStatus=SIGKILL
[Install]
Alias=zookeeper
WantedBy=multi-user.target
:wq!
[root@big-master system]# chmod 644 zookeeper.service
[root@big-master system]# ls zookeeper.service
zookeeper.service
[root@big-master system]# systemctl daemon-reload
[root@big-master system]# systemctl enable zookeeper.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /etc/systemd/system/zookeeper.service.
[root@big-master system]# systemctl start zookeeper.service
[root@big-master system]# systemctl status zookeeper.service
● zookeeper.service - Zookeeper ( ver. 3.4.11 )
Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2018-05-01 12:18:50 KST; 2s ago
Process: 10143 ExecStart=/zookeeper/bin/zkServer.sh start (code=exited, status=0/SUCCESS)
Main PID: 10152 (java)
CGroup: /system.slice/zookeeper.service
└─10152 /jdk/bin/java -Dzookeeper.log.dir=/zookeeper/logs -Dzookeeper.root.logger=INFO,CONSOLE -cp /zookeeper/bin/../build/classes:/zookeeper/bin/....
May 01 12:18:49 big-master systemd[1]: Starting Zookeeper ( ver. 3.4.11 )...
May 01 12:18:49 big-master zookeeper[10143]: ZooKeeper JMX enabled by default
May 01 12:18:49 big-master zookeeper[10143]: Using config: /zookeeper/bin/../conf/zoo.cfg
May 01 12:18:50 big-master systemd[1]: Started Zookeeper ( ver. 3.4.11 ).
[root@big-master system]# systemctl stop zookeeper.service
[root@big-master system]# systemctl status zookeeper.service
● zookeeper.service - Zookeeper ( ver. 3.4.11 )
Loaded: loaded (/etc/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2018-05-01 12:19:01 KST; 1s ago
Process: 10189 ExecStop=/zookeeper/bin/zkServer.sh stop (code=exited, status=0/SUCCESS)
Process: 10143 ExecStart=/zookeeper/bin/zkServer.sh start (code=exited, status=0/SUCCESS)
Main PID: 10152 (code=killed, signal=KILL)
May 01 12:18:49 big-master systemd[1]: Starting Zookeeper ( ver. 3.4.11 )...
May 01 12:18:49 big-master zookeeper[10143]: ZooKeeper JMX enabled by default
May 01 12:18:49 big-master zookeeper[10143]: Using config: /zookeeper/bin/../conf/zoo.cfg
May 01 12:18:50 big-master systemd[1]: Started Zookeeper ( ver. 3.4.11 ).
May 01 12:19:01 big-master systemd[1]: Stopping Zookeeper ( ver. 3.4.11 )...
May 01 12:19:01 big-master zookeeper[10189]: ZooKeeper JMX enabled by default
May 01 12:19:01 big-master zookeeper[10189]: Using config: /zookeeper/bin/../conf/zoo.cfg
May 01 12:19:01 big-master systemd[1]: Stopped Zookeeper ( ver. 3.4.11 ).
[root@big-master system]# systemctl disable zookeeper.service
Removed symlink /etc/systemd/system/multi-user.target.wants/zookeeper.service.
[root@big-master system]# systemctl reenable zookeeper.service
Created symlink from /etc/systemd/system/multi-user.target.wants/zookeeper.service to /etc/systemd/system/zookeeper.service.
반응형
'os > linux' 카테고리의 다른 글
lvm 확장 후 fs 적용 (0) | 2018.05.13 |
---|---|
linux time sync ntp install ( 시간 동기화 ntp 설치 ) (0) | 2018.05.05 |
linux java 설치 (0) | 2018.04.17 |
linux swap file 추가하기 (0) | 2018.04.14 |
file content merge & replace (0) | 2018.04.12 |
Comments