대충 이런거임
example.service - 우분투 16.04에선 /lib/systemd/system에 둬야 됨
[Unit]
Description=TS Service
OnFailure=unit-status-mail@%n.service
[Service]
WorkingDirectory=/home/ts-deploy
ExecStart=/home/ts-deploy/bin/ts-sg.sh
Restart=always
[Install]
WantedBy=multi-user.target
이멜도 서비스를 통해 보냄 - unit-status-mail@.service
[Unit]
Description=Unit Status Mailer Service
After=network.target
[Service]
Type=simple
ExecStart=/home/ts-deploy/bin/unit-status-mail.sh %I "Hostname: %H" "Machine ID: %m" "Boot ID: %b"
실행 쉨 스크립트 - 환경변수 source 후 jar 파일 실행
#!/bin/bash
. /home/ts-deploy/env/ts-systemd.env
. /home/ts-deploy/env/ts-systemd-extra.env
/usr/bin/java -jar /home/ts-deploy/ts-service.jar --log-level info
실패시 이멜 보고 (간단히 하기 위해 아마존 cli를 통해 ses로 이멜 보냄)
#!/bin/bash
SYSTEM=ex-system
FROM=systemd@example.com
TO=engineering-alerts@example.com
SUBJECT="System Failure: ${SYSTEM}"
UNIT=$1
EXTRA=""
for e in "${@:2}"; do
EXTRA+="$e"$'
'
done
UNITSTATUS=$(systemctl status $UNIT)
${EXTRA}
WILL BE RE-STARTED BY SYSTEMD AUTOMATICALLY
${UNITSTATUS}"
/usr/bin/aws ses send-email --from ${FROM} --to ${TO} --subject "${SUBJECT} - unit: ${UNIT}" --text "${BODY}"
뭐 대충 이런 거 ㅇㅇ
이런건 저장
오오~ 탱큐~ ㅇㅇ 이번은 솔루션 비슷하게 들어가는거라서 이번에는 삽질하고, 다음에 우리가 관리하는 넘에 대해서는 적용해야징 ㅇㅇ