시스템 서비스 작동 방식


9

스냅을 만들 때 snapcraft.yaml 파일구문에 따라 daemon앱을 시스템 서비스로 실행 하도록 키워드를 추가 할 수 있습니다. 그러한 선언의 예로서 :

apps:
  tinyproxy:
    command: ./launcher.sh
    daemon: simple
    plugs: [network,network-bind]

그러나 곧 시스템 서비스라는 것은 무엇을 의미합니까? 즉, 수명주기는 무엇입니까 (시작, 다시 시작, 중지 ...)? 나는 그들이 일반적인 도구 (사용하여 시스템에서 실행 모니터링 할 수 있습니다 ps, top등)?

답변:


8

에서 https://developer.ubuntu.com/en/snappy/build-apps/debug/

서비스 테스트

서비스를 테스트하려면 먼저 설치해야합니다. 설치되면 systemd의 systemctl명령을 사용하여 서비스가 예상대로 시작되고 실행되는지 확인할 수 있습니다. 예를 들면 다음과 같습니다.

systemctl status snap.<name>.<appname>

로그 찾기

journalctl명령은 서비스가 stdout/로 보내는 메시지를 검사하는 데 사용할 수 있습니다 stderr. 예를 들면 다음과 같습니다.

journalctl -u snap.<name>.<appname>

서비스는 추가 데이터를 syslog ( /var/log/syslog) 또는 사용자 정의 로그 디렉토리에 기록 할 수 있습니다. 사용자 정의 로그 디렉토리는 서비스가 쓸 수있는 경로 (보통 SNAP_DATA)에 있어야합니다 .

코어 덤프 받기

코어 덤프를 사용하려면 sysfs를 통해 쓰려는 장소를 구성해야합니다. 예를 들어

$ echo "/tmp/core.%e.%p" > /proc/sys/kernel/core_pattern

신호를 수신 한 프로세스 /tmp의 위치 CWD에 상관없이 코어 덤프가 디렉토리에 기록되도록합니다 .


감사! 또한, 나는 서비스가 시작되지와 디버그 문제에 대한 쉬운 방법은 일시적으로 주석 처리하는 것입니다 팁을 얻었다 daemon: simple라인은 일반 응용 프로그램으로 동작하도록하고, 수동으로 "appified"서비스를 시작합니다sudo /snap/bin/<servicename>
데이비드 Planella

저널 대신 사용자 정의 파일로 로그를 경로 재 지정할 수 있습니까?
Ankur Bhatia
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.