CentOS 7 sytemctl 사용자 정의 서비스 시작
systemd 는 시스템 서비스 간 의 의존 관 계 를 나타 내 고 시스템 초기 화 시 서비스의 병행 작 동 을 실현 하 는 동시에 Shell 의 시스템 소 비 를 낮 추 는 효 과 를 얻 을 수 있 도록 더욱 우수한 프레임 워 크 를 제공 합 니 다.systemd 목 표 는: 가능 한 한 적은 프로 세 스 를 시작 하 는 것 입 니 다.가능 한 한 많은 프로 세 스 를 병행 하여 시작 합 니 다. systemd 는 셸 스 크 립 트 에 대한 의존 도 를 최대한 줄 입 니 다.
시스템 단위 유형
systemctl – type = 단위 유형, 단 위 를 걸 러 내 는 데 사용 합 니 다.
예 를 들 면: systemctl –type=service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[root@mimvp_usa ~]
# systemctl --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
aegis.service loaded active running LSB: aegis update.
agentwatch.service loaded active exited SYSV: Starts and stops guest agent
aliyun.service loaded active running auto run aliyunservice or agent
crond.service loaded active running Command Scheduler
dbus.service loaded active running D-Bus System Message Bus
[email protected] loaded active running Getty on tty1
httpd.service loaded active running The Apache HTTP Server
kmod-static-nodes.service loaded active exited Create list of required static device nodes
for
the current kernel
lvm2-lvmetad.service loaded active running LVM2 metadata daemon
lvm2-monitor.service loaded active exited Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress
mariadb.service loaded active running MariaDB database server
● mongod.service loaded failed failed SYSV: Mongo is a scalable, document-oriented database.
mongodb.service loaded active running mongodb
network.service loaded active exited LSB: Bring up
/down
networking
nscd.service loaded active running Name Service Cache Daemon
ntpd.service loaded active running Network Time Service
polkit.service loaded active running Authorization Manager
rc-
local
.service loaded active exited
/etc/rc
.d
/rc
.
local
Compatibility
서비스 (service): 백 스테이지 서 비 스 를 관리 하고 있 습 니 다.마 운 트 (mount) 자동 마 운 트 (automount): 파일 시스템 을 마 운 트 하 는 데 사용 합 니 다.표 (target): 실행 단계;소켓 (socket): 소켓 을 만 들 고 소켓 에 접근 한 후 의존 관 계 를 이용 하여 다른 단 위 를 간접 적 으로 시작 합 니 다.
부팅 서비스 관리
CentOS 7 의 서비스 systemctl 스 크 립 트 는:/usr/lib/systemd/에 저 장 됩 니 다. 시스템 (system) 과 사용자 (user) 의 구분 이 있 습 니 다.
/usr/lib/systemd/system//usr/lib/systemd/user/
로그 인하 지 않 고 실행 할 수 있 는 프로그램 처럼 시스템 서비스 가 존재 합 니 다. 즉,/usr/lib/systemd/system/디 렉 터 리 의 모든 서 비 스 는 'service' 로 끝 납 니 다. 보통 3 부분 으로 나 눌 수 있 습 니 다. [Unit], [Service], [Install]
[Unit] 주로 이 서비스 에 대한 설명 입 니 다. 내용 은 Description 과 After 를 포함 하고 Description 은 서 비 스 를 설명 하 는 데 사 용 됩 니 다. After 는 서비스 유형 을 설명 하 는 데 사 용 됩 니 다.
[Service] 서비스의 관건 이 고 서비스의 구체 적 인 운행 매개 변수 설정 이다.
Type = forking 은 배경 에서 실행 되 는 형식 입 니 다.
PIDFile 은 PID 를 저장 할 파일 경로 입 니 다.
ExecStart 서비스의 구체 적 인 실행 명령,
ExecReload 는 재 부팅 명령 으로,
ExecStop 은 정지 명령 으로,
PrivateTmp = True 는 서비스 에 독립 된 임시 공간 을 할당 하 는 것 을 표시 합 니 다.
주의: [Service] 부분의 시작, 재 부팅, 정지 명령 은 모두 절대 경 로 를 사용 해 야 합 니 다. 상대 경 로 를 사용 하면 오류 가 발생 합 니 다!
[Install] 서비스 설치 와 관련 된 설정 으로 다 중 사용자 로 설정 할 수 있 습 니 다. 서비스 스 크 립 트 는 위 에서 작성 한 대로 754 권한 으로/usr/lib/systemd/system/디 렉 터 리 에 저 장 됩 니 다. 이 때 systemctl 을 이용 하여 설정 할 수 있 습 니 다.
예시:
사용자 정의 mongodb 부팅
vim /usr/lib/systemd/system/mongodb.service
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=mongodb
After=auditd.service systemd-user-sessions.service
time
-
sync
.target network.target
[Service]
Type=forking
PIDFile=
/var/run/mongodb/mongod
.pid
ExecStart=
/root/script/mongo_server_start
.sh
ExecStop=
/root/script/mongo_server_stop
.sh
PrivateTmp=
true
[Install]
WantedBy=multi-user.target
systemctl 설정 명령
systemctl status mongodb.service //mongodb 시작 상태 보기
systemctl start mongodb.service //시동 을 걸다 mongodb
systemctl stop mongodb.service //mongodb 닫 기
systemctl enable mongodb.service //시동 을 걸다 mongodb 서비스
systemctl disable mongodb.service //전원 을 켜 고 끄다 mongodb 서비스
예시:
systemctl status mongodb.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
● mongodb.service - mongodb
Loaded: loaded (
/usr/lib/systemd/system/mongodb
.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2016-06-15 19:05:41 CST; 2min 24s ago
Process: 1143 ExecStop=
/root/script/mongo_server_stop
.sh (code=exited, status=1
/FAILURE
)
Process: 1158 ExecStart=
/root/script/mongo_server_start
.sh (code=exited, status=0
/SUCCESS
)
Main PID: 1161 (mongod)
CGroup:
/system
.slice
/mongodb
.service
└─1161
/usr/bin/mongod
-f
/etc/mongod
.conf
Jun 15 19:05:41 mimvp_usa systemd[1]: Starting mongodb...
Jun 15 19:05:41 mimvp_usa mongo_server_start.sh[1158]: about to fork child process, waiting
until
server is ready
for
con...ions.
Jun 15 19:05:41 mimvp_usa mongo_server_start.sh[1158]: forked process: 1161
Jun 15 19:05:41 mimvp_usa mongo_server_start.sh[1158]: child process started successfully, parent exiting
Jun 15 19:05:41 mimvp_usa systemd[1]: Started mongodb.
Hint: Some lines were ellipsized, use -l to show
in
full.
systemctl 은 낯 설 지만 init. d 와 같은 방식 보다 훨씬 간단 합 니 다. 또한 사용 이 간단 합 니 다. systemctl 은 간단 한 조작 도 많 습 니 다. 지금도 많은 자료 가 있 습 니 다. 보아하니 RHEL/CentOS 는 다른 Linux 발행 판 보다 선진 적 인 것 같 습 니 다. 이번 업 데 이 트 는 Linux 2.6 커 널 을 버 리 고 속도 나 안정성 이 많이 향상 되 었 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.