スナップを作成するとき、および snapcraft.yamlファイルの構文 に従って、daemon
キーワードを追加して、アプリをシステムサービスとして実行することを指定できます。そのような宣言の例として:
apps:
tinyproxy:
command: ./launcher.sh
daemon: simple
plugs: [network,network-bind]
しかし、簡単にシステムサービスであるとはどういう意味ですか?つまり、それらのライフサイクルは何ですか(開始、再起動、停止...)?通常のツール(ps
、top
など)を使用して、システムで実行されているそれらを監視できますか?
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
ディレクトリに書き込まれるようにします。