43 lines
1.2 KiB
Desktop File
43 lines
1.2 KiB
Desktop File
# systemd 서비스 등록 파일.
|
|
# 서버에서:
|
|
# sudo cp deploy/genesis.service /etc/systemd/system/
|
|
# sudo systemctl daemon-reload
|
|
# sudo systemctl enable --now genesis
|
|
#
|
|
# 경로나 사용자 이름을 바꿨다면 아래 값도 함께 고치세요.
|
|
|
|
[Unit]
|
|
Description=Genesis 게임 서버 + 포트폴리오 사이트
|
|
After=network.target
|
|
|
|
[Service]
|
|
# 실행 파일과 wwwroot, appsettings.json 이 함께 있는 폴더
|
|
WorkingDirectory=/srv/genesis
|
|
ExecStart=/srv/genesis/GameServer
|
|
|
|
# 비밀값은 이 파일에서 읽는다. (git 에 올리지 않는다)
|
|
EnvironmentFile=/srv/genesis/genesis.env
|
|
|
|
Environment=ASPNETCORE_ENVIRONMENT=Production
|
|
# 0.0.0.0 이어야 외부에서 접속된다. nginx 를 앞에 둔다면 127.0.0.1 로 좁히세요.
|
|
Environment=ASPNETCORE_URLS=http://0.0.0.0:5281
|
|
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
|
|
|
|
User=genesis
|
|
Group=genesis
|
|
|
|
Restart=always
|
|
RestartSec=5
|
|
# .NET 은 SIGINT 를 받아야 정상 종료한다. (기본 SIGTERM 이면 강제 종료됨)
|
|
KillSignal=SIGINT
|
|
SyslogIdentifier=genesis
|
|
|
|
# 최소한의 격리. 업로드 폴더에는 써야 하므로 전체 읽기전용은 걸지 않는다.
|
|
NoNewPrivileges=true
|
|
PrivateTmp=true
|
|
ProtectSystem=full
|
|
ProtectHome=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|