Armadilloフォーラム

systemdの標準出力先

kazukitakahashi

2020年5月26日 10時27分

/etc/systemd/system/に下のserviceファイルを定義して、プログラムの自動起動を設定し
Armadillo-Iot G3L上で動作するアプリを運用していました。
しかし、運用中ディスク(RAMかROMかは不明)が一杯になる障害があり
運用者の方で
ExecStart=/bin/sh -c 'exec /home/atmark/gatewaysoft/PG_Startup/PG_Startup > /dev/null 2>&1'
というように、systemdの標準出力先を/dev/nullにする対応を行ったと連絡が来ました。

ですが、/etc/systemd/journald.confの定義をカスタマイズすれば(もしくはデフォルトでも)
ディスクが一杯になってしまうことはないと思うのですが、違いますでしょうか?

合わせて、systemdにサービスを登録するとjournal以外にも標準出力先があり
それは上限を設定できないといった情報ありますか?

○serviceファイル内容
[Unit]
Description = PCS
[Service]
ExecStart=/home/atmark/gatewaysoft/PG_Startup/PG_Startup
Restart=always
Type=simple
WorkingDirectory=/home/atmark/gatewaysoft/PG_Startup
[Install]
WantedBy=multi-user.target

コメント

kazukitakahashi

2020年6月1日 10時37分

追加情報ですが、運用者はdeamon.logが肥大し、ディスクが枯渇することが原因と言っています。

古関です。

> 追加情報ですが、運用者はdeamon.logが肥大し、ディスクが枯渇することが原因と言っています。
logrotate設定をしてみてはいかがでしょうか。

標準ではdeamon.logはローテーションしないようです。
(/var/log/syslogなどはする)

logrotateの設定方法は以下が参考になると思います。

https://armadillo.atmark-techno.com/blog/9492/3498

以下のp.193:ログ管理。
https://armadillo.atmark-techno.com/files/downloads/armadillo-guide-std…

ディスクの空き容量、出力したいログの量、ログのサイズ、ローテーションの周期
を考慮して設定してみると良いと思います。

また、お客様のアプリケーションで頻繁に出力しているログの量の調整をしてみてはいかがでしょうか。
どのような目的でどのようなログをどれくらいの量出力するかはお客様次第なので何とも言えませんが、
すべてのログが必要なのかの見直しをしてみたり、
デバッグモードとリリースモードで出す情報量を変えてみるのも良いかもしれません。