티스토리 뷰
Node.js App 을 CentOS systemd 의 Service로 등록하기
이 문서에서는 CentOS7 의 systemctl
명령으로 제어가능한 서비스를 만드는 법에 대해 알아보겠습니다.
우선, 기본에 서비스 관리 명령어 였던 chkconfig
를 통해 /etc/init.d/*
에 등록된 서비스들을 제어하는것이 아닌, systemctl
명령을 통해 서비스를 제어할 수 있는 방법에 대해 설명합니다.
서비스 파일 만들기
[]$ vim /etc/systemd/system/[service name].service
[service name] 을 원하시는 서비스 이름으로 사용하면 됩니다.
그리고 아래의 내용을 참고하여 작성하시면됩니다.
[Service]
ExecStart=[node binary] /home/srv-node-sample/[main file]
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=node-sample
User=srv-node-sample
Group=srv-node-sample
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
[node binary] : which
명령으로 확인한 path를 넣으시면됩니다.
[main file] : node.js
로 시작할 main file 이름입니다. 보통 index.js
겠죠?
ExecStart=
는 서비스를 시작하려는 전체 명령입니다.
이렇게 작성이 완료되면 테스트 해보죠.
[]$ systemctl enable node-sample
[]$ systemctl start node-sample
사용법
Status
[]$ systemctl status node-sample
node-sample.service
Loaded: loaded (/etc/systemd/system/node-sample.service; enabled)
Active: active (running) since Fri 2013-11-22 01:12:15 UTC; 35s ago
Main PID: 7213 (node)
CGroup: name=systemd:/system/node-sample.service
└─7213 /home/srv-node-sample/.nvm/v0.10.22/bin/node /home/srv-nod...
Nov 22 01:12:15 d02 systemd[1]: Started node-sample.service.
서비스 상태에 대해서 확인 할 수 있습니다.
Logs
[]$ journalctl -u node-sample
-- Logs begin at Thu 2013-11-21 19:05:17 UTC, end at Fri 2013-11-22 01:12:15 UTC. --
Nov 22 01:12:15 d02 systemd[1]: Starting node-sample.service...
Nov 22 01:12:15 d02 systemd[1]: Started node-sample.service.
Nov 22 01:12:30 d02 node-sample[7213]: Sample message from application
서비스 로그를 확인 할 수 있습니다. 데몬이 죽었거나, 데몬 시작시 문제가 발생했다면 이 방법으로 확인이 가능합니다.
Restart
[]$ systemctl restart node-sample
재시작을 하도록 지시합니다.
Stop
[]$ systemctl stop node-sample
서비스를 정지하도록 지시합니다.
그리고 서비스가 외부 또는 어떤 이유로 인해 죽으면 재시작 되는지 확인해봅시다:
[]$ systemctl status node-sample
node-sample.service
Loaded: loaded (/etc/systemd/system/node-sample.service; enabled)
Active: active (running) since Fri 2013-11-22 01:12:15 UTC; 35s ago
Main PID: 7213 (node)
CGroup: name=systemd:/system/node-sample.service
└─7213 /home/srv-node-sample/.nvm/v0.10.22/bin/node /home/srv-nod...
Nov 22 01:12:15 d02 systemd[1]: Started node-sample.service.
[]$ kill 7213
[]$ systemctl status node-sample
node-sample.service
Loaded: loaded (/etc/systemd/system/node-sample.service; enabled)
Active: active (running) since Fri 2013-11-22 01:54:37 UTC; 6s ago
Main PID: 7236 (node)
CGroup: name=systemd:/system/node-sample.service
└─7236 /home/srv-node-sample/.nvm/v0.10.22/bin/node /home/srv-nod...
Nov 22 01:54:37 d02 systemd[1]: node-sample.service holdoff time over, sch...t.
Nov 22 01:54:37 d02 systemd[1]: Stopping node-sample.service...
Nov 22 01:54:37 d02 systemd[1]: Starting node-sample.service...
Nov 22 01:54:37 d02 systemd[1]: Started node-sample.service.
잘 살아나네요. PID가 바뀐것을 확인해보시면 아시겠죠?
'프로그래밍언어 > 리눅스' 카테고리의 다른 글
SSH 접속 지연(느림) 해결 (0) | 2017.01.06 |
---|---|
[PHP-FPM] 최대 자식 개수 구하기 (0) | 2017.01.03 |
[CentOS] Yum 패키지 저장소 제거 (0) | 2016.12.27 |
[CentOS] SELinux 로 특정 디렉토리에 접근 권한 2개 부여하기 (0) | 2016.12.25 |
[리눅스][SSH] 공개키 자동로그인 안될때. (0) | 2016.12.07 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- ssh
- 워드프레스
- 소공
- 채굴량
- javascript
- MySQL
- 소프트웨어 엔지니어링
- headless browser
- centOS7
- 자바스크립트
- graceful shutdown
- flask-simpleldap
- php
- 가 부터 힣
- 리눅스
- Python
- ELECTRON
- pk
- centOS
- NGINX
- select
- backup
- director.js
- 무정지서비스배포
- bash
- swapfile
- mariadb
- GROUP BY
- 소프트웨어 공학
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함