CentOS 7 sytemctl 사용자 정의 서비스 시작

7739 단어
CentOS 7 은 RHEL 7 의 새로운 기능 을 계승 했다. 예 를 들 어 강력 한 systemctl, systemctl 의 사용 으로 인해 시스템 서비스의/etc/init. d 의 시작 스 크 립 트 방식 이 크게 바 뀌 었 고 시스템 서비스의 운영 효율 도 크게 향상 시 켰 다.그러나 서비스의 설정 은 예전 과 크게 다 르 고 간단 해 지면 서 많이 사용 되 었 다.
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 커 널 을 버 리 고 속도 나 안정성 이 많이 향상 되 었 습 니 다.

좋은 웹페이지 즐겨찾기