CenOS6 

upstart 명령 이용
  • /etc/init 하에 service_name.conf 로 작성
  • start/stop/restart [service_name] 으로 실행 가능
  • chkconfig [service_name] on 으로 부팅시 실행 가능
service_name.conf 파일
## upstart configuration file example
chdir /[python folder path]
env ENVIRONMENT=development
exec python [python file].py $ENVIRONMENT 2>&1
post-stop exec sleep 1
respawn
service 실행
$ cd /etc/init
/etc/init$ start [service_name]

CentOS7

systemd 명령 이용
  • 명령을 바로 실행할 수 없기 때문에 python 실행명령은 shell script로 작성
  • /etc/systemd/system 밑에 service_name.service 로 작성
  • 설정 파일 생성/변경 후 systemctl daemon-reload 로 로딩
  • service [service_name] start/stop/restart 로 실행 
    • systemctl start/stop/restart [service_name] 과 같다
  • systemctl status [service_name] 으로 상태/로그 조회
  • systemctl enable [service_name] 으로 부팅시 실행 가능
service_name.service파일
## systemd configuration file example
[Unit]
Description= example server service
After=network.target
[Service]
Type=simple
WorkingDirectory=/[python folder path]/
ExecStart=/[python folder path]/start.sh development
Restart=always
[Install]
WantedBy=multi-user.target
start.sh 파일
#!/bin/sh
python /[python folder path]/ExampleServer.py $1
service 실행
$ systemctl start [service_name]


반응형