web-dev-qa-db-ja.com

システムサービスはスナップでどのように機能しますか

スナップを作成するとき、および snapcraft.yamlファイルの構文 に従って、daemonキーワードを追加して、アプリをシステムサービスとして実行することを指定できます。そのような宣言の例として:

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

しかし、簡単にシステムサービスであるとはどういう意味ですか?つまり、それらのライフサイクルは何ですか(開始、再起動、停止...)?通常のツール(pstopなど)を使用して、システムで実行されているそれらを監視できますか?

8
David Planella

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

シグナルを受信したプロセスのCWDがどこにあるかに関係なく、コアダンプが/tmpディレクトリに書き込まれるようにします。

7
dholbach