응용 프로그램을 시스템 서비스로 실행하려고 합니다. 서비스 파일의 예는 다음과 같습니다.
[Unit]
Description = Custom APP
Wants = network.target
After = syslog.target network-online.target graphical.target
StartLimitIntervalSec = 0
[Service]
User =
Type = simple
Environment =
WorkingDirectory =
ExecStart =
Restart = always
RestartSec = 60
KillMode = control-group
[Install]
WantedBy = graphical.target
SSH를 통해 서비스를 실행합니다. 운영체제는 우분투 18.04 입니다. 외부 모니터가 장치에 연결되어 있고 모든 경우에 GUI를 통해 시스템에 한 번 로그인한 후 장치에서 ssh를 실행하면 서비스와 프로세스가 예상대로 작동합니다.
하지만 장치를 재부팅하고 외부 모니터를 제거하고 SSH를 통해서만 로그인하면(예: GUI 기반 로그인 없음) 이런 일이 발생합니다.
- 명령줄에서 간단한 프로세스로 애플리케이션을 실행하면 예상대로 작동합니다.
- 응용 프로그램을 시스템 서비스로 실행하려고 하면 예외가 발생한 후 종료됩니다.
- GUI를 통해 한 번만 로그인하고 장치를 재부팅하지 않으면 외부 모니터를 제거해도 서비스가 제대로 작동합니다.
왜 이런 일이 발생하는지 모르겠습니다.
편집하다
- 던져진 예외는 - 활성화된 예외 없이 Terminate가 호출되는 것입니다.
- C++ gstreamer를 기반으로 한 스트리밍 애플리케이션입니다.