# 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