시스템 원샷은 몇 주 후에 비활성화(죽음)됩니다.

시스템 원샷은 몇 주 후에 비활성화(죽음)됩니다.

세 가지 시스템 구성이 활성화되어 있습니다.

  1. 실제로 실행하고 싶은 서비스(dotnet 프로세스):
# systemd.conf
[Unit]
Description=MyService
After=network.target
StartLimitIntervalSec=0

[Service]
# Foreground process (do not use --daemon in ExecStart or config.rb)
Type=simple

User=deployer

# The path to the application root
WorkingDirectory=/srv/myapp/current/bin

ExecStart=/bin/bash -c "dotnet MyService.dll"

Restart=always
RestartSec=5s

Environment="ThreadPool_ForceMinWorkerThreads=200"
Environment="COMPlus_ThreadPool_ForceMinWorkerThreads=200"
Environment="COMPlus_ThreadPool_ForceMaxWorkerThreads=10000"

[Install]
WantedBy=multi-user.target
  1. 터치된 파일을 모니터링하는 데 사용되는 다시 시작 및 다시 시작 경로(위의 서비스 다시 시작이 트리거됨):
# systemd-restarter.conf
[Unit]
Description=MyService restart
After=network.target

[Service]
Type=oneshot

ExecStart=/bin/bash -c "pkill -f 'dotnet MyService.dll'"

[Install]
WantedBy=multi-user.target
# systemd-restarter-path.conf
[Path]
PathModified=/srv/myapp/shared/restart.txt

[Install]
WantedBy=multi-user.target

몇 주 후에 systemd-restarter-path.conf 및 systemd-restarter.conf가 갑자기 작동 중지(비활성) 상태가 되었는데 그 이유는 모르겠습니다.

배포에 capistrano를 사용하므로 restart.txt 파일을 건드리고 systemd가 프로세스를 다시 시작합니다.

systemctl 명령 예:

# systemctl status restart-service.service
● restart-service.service - restart
   Loaded: loaded (/etc/systemd/system/restart-service.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-10-10 00:41:11 UTC; 20h ago
 Main PID: 3037 (code=exited, status=0/SUCCESS)
# systemctl status restart.path
● restart.path
   Loaded: loaded (/etc/systemd/system/restart.path; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-10-10 00:43:30 UTC; 20h ago

restart.path 및 restart-service.service에서 systemctl restart를 실행하면 다시 작동하기 시작합니다. 아니면 서버를 다시 시작하면 됩니다.

restart.txt 파일 모니터링이 중지된 이유를 아시나요?

관련 정보