-- "amano-sched-3" 라는 서비스를 만드는 예시입니다.
-- 이름은 원하는대로 바꾸시면 됩니다.
sudo vi /etc/systemd/system/amano-sched-3.service
-- jar 또는 war 파일을 실행하는 서비스입니다.
-- /home/ec2-user/sched3/APP-amano_schedule-2.1.0-prod3.jar 는 예시경로이므로 실제 경로로 바꾸세요.
[Unit]
Description=Amano Naverplace Scheduler 3
After=syslog.target
[Service]
User=root
ExecStart=java $JAVA_OPTS -jar /home/ec2-user/sched3/APP-amano_schedule-2.1.0-prod3.jar
SuccessExitStatus=143
Restart=no
RestartSec=10
[Install]
WantedBy=multi-user.target
-- "amano-sched-3.service" 는 서비스 정의 파일명 입니다.
sudo systemctl daemon-reload
sudo systemctl enable amano-sched-3.service
sudo systemctl start amano-sched-3.service
-- "amano-sched-3.service" 는 서비스 정의 파일명 입니다.
[서비스 중지]
--------------------------------------------
sudo systemctl stop amano-sched-3.service
--------------------------------------------
[서비스 재시작]
--------------------------------------------
sudo systemctl restart amano-sched-3.service
--------------------------------------------
[서비스 로그 확인]
--------------------------------------------
sudo journalctl -u amano-sched-3.service
--------------------------------------------
[서비스 삭제]
--------------------------------------------
sudo systemctl stop amano-sched-3.service
sudo systemctl disable amano-sched-3.service
sudo rm /etc/systemd/system/amano-sched-3.service
sudo systemctl daemon-reload
--------------------------------------------
-- 서비스 정의서의 'Restart', 'RestartSec' 설정에 대한 설명
Restart=[no|on-success|on-failure|on-watchdog|on-abort|always]
유닛이 죽었을때나 혹은 "WatchdogSec=" 만큼의 시간 동안 응답이 없는 경우 재시작한다.
"no" : 기본값, 유닛을 다시 시작하지 않는다.
"on-success" : 유닛이 정상적으로 종료되었을 때만 재시작한다.
종료시에 '0' 값을 리턴하여 종료되었거나 SIGHUP, SIGINT, SIGTERM, SIGPIPE 등과 같은 시그널 또는
'SuccessExitStatus=' 설정에서 지정된 리턴 코드 목록에 따른 시그널에 대해서 모두 성공으로 인식해 재시작을 하게 된다.
"on-failure" : 유닛이 비정상적으로 종료되었을때 재시작한다. 리턴값이 "0" 이 아닌 경우, core dump 와 같이
비정상적인 시그널을 받고 종료된 경우, 타임 아웃값내 응답이 없는 경우 등일때 재시작 하게 된다.
"on-watchdog" : 'WatchdogSec=' 에 설정된 시간내 응답이 없는 경우에만 재시작 한다.
"on-abort" : 지정되지 않은 리턴값을 받은 경우 재시작을 한다.
"always" : 종료 상태 등과 무관하게 무조건 재시작한다.
(사용자가 중지해도 시스템이 다시 띄우게 된다. 설정된 유닛 중지 시 주의가 필요하다.)
RestartSec=10
재시작 명령을 수행할때 중지 이후 다시 시작하는데 대기(sleep)하는 시간을 설정한다.
기본값은 "100ms" 이다. 각각 “min”, “s”, “ms” 단위로 설정한다.
해당 설정은 Restart= 옵션이 있는 경우에만 적용된다.
(이 설정은 '서비스가 종료되면 즉시 재시작하지 않고 10초 동안 대기'란 의미))