systemctl을 일반 유저로 사용하는 방법
루트 권한 없이도 사용자별로 독립된 서비스를 실행하는 방법
Service files
~/.config/systemd/user/app.service
[Unit]
Description=Website Server
After=network.target
[Service]
WorkingDirectory=/home/website/deploy/website
ExecStart=/usr/bin/java -Xmx512m -jar /home/website/deploy/website/app.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=5
MemoryMax=600M
MemoryHigh=500M
OOMPolicy=kill
[Install]
WantedBy=default.target
# --user를 사용해서 일반 유저의 daemon을 설정할 수 있다.
systemctl --user enable app.service
systemctl --user start app.service
Linger
- 일반 유저는 logout 상태일 때 daemon들이 다 죽는다.
- 그렇기 때문에 아래와 같이 Linger를 활성화 시켜줘야한다.
sudo loginctl enable-linger website