systemd ユニット確認(Systemd Unit Inspector)

systemd のユニットファイル(.service・.timer・.socket)を貼ると、[Unit]・[Service]・[Install] などのセクションごとの設定を表にし、各設定の意味を表示します。ExecStart を [Unit] に書いた、絶対パスでない、User が無く root で動く、WantedBy が無く enable できないといった点を行番号つきで指摘します。用途に合わせたひな形も作れます。

端末内で処理・アップロードなしスマホ対応オフライン対応

ファイルや入力内容はお使いの端末(ブラウザ)の中だけで処理され、サーバーへは送信されません。

貼り付けた内容は端末の中だけで処理し、サーバーへ送らず保存もしません。指摘は systemd の man に基づく項目だけで、systemd-analyze verify や systemd-analyze security の代わりではありません。

ユニットファイルをドロップ

または

テキストファイル 1 つ(200 KB まで)。内容は送信されません。貼り付け(Ctrl+V)にも対応
設定
ユニットファイルを貼り付けるか、ファイルをドロップすると、設定の一覧と指摘が出ます。

使い方

  1. app.service

    ユニットを貼る(.service)

  2. 設定とセクション行番号つき

    設定の表と指摘

  3. app.service(ひな形)再読み込み

    ひな形を作って保存

ユニットを貼り、指摘を直し、ひな形から作り直す流れ
  1. ユニットファイルの内容を貼り付けるか、ファイルをドロップします。「サンプルで試す」でも動作を確認できます。

  2. 「設定」で、セクションごとの設定と各設定の意味を確かめます。硬化(hardening)の提案もここに出ます。

  3. 「指摘」で重要度つきの一覧を見ます。ExecStart の書き間違いや root で動く設定は高・中、そのほかは低です。

  4. 「ひな形を作る」で Web アプリか定期実行の unit を作れます。実行ユーザー・パス・時刻を埋めて保存します。

  5. ユニットを書き換えたら systemctl daemon-reload を実行してから、サービスを再起動してください。

できること

セクションごとの設定と意味

[Unit]・[Service]・[Install]・[Timer]・[Socket] のセクションごとに、設定名と値を表にし、各設定の意味を短く表示します。一覧にない設定名は未知として出します。

セクション違いと綴りの誤り

ExecStart を [Unit] に書くなど、その設定が効かないセクションを指摘します。Restartsec のような綴りの違いは、正しい名前の候補もあわせて示します。

起動の書き方の確認

Type と ExecStart の組み合わせ(oneshot 以外で複数の ExecStart など)、絶対パスでない実行ファイル、User の無い service、WantedBy の無い [Install] を指摘します。

再起動の設定の確認

Restart と RestartSec の組み合わせ、StartLimitIntervalSec=0 で再起動の上限が無効になっているかを確かめます。

硬化の提案と、ひな形の作成

NoNewPrivileges・ProtectSystem・ProtectHome・PrivateTmp などの未設定を一覧にします。Web アプリと定期実行(timer)のひな形を作ります。

こんなときに

  • Web アプリを常駐させる service を書いたが、ExecStart を置く場所や User の指定が正しいか確かめたい
  • cron の代わりに systemd timer で定期実行したいので、.timer と .service の形を作りたい
  • 既存の root で動く service に、NoNewPrivileges や ProtectSystem などの硬化を足せるか確かめたい
  • Restart を付けたのに再起動が止まらない(StartLimit の指定)ことがないか確かめたい

対応状況

機能対応補足
.service・.timer・.socket の読み取りと設定の表示対応—
セクション違い・綴りの誤り(一覧にある設定名)対応—
Type・ExecStart・User・WantedBy・Restart の基本的な確認対応—
硬化の設定の有無(一覧にある 11 項目)一部対応設定されているかだけを見ます。効き方や相性は確かめません
ひな形(Web アプリ・定期実行)の作成対応—
systemd-analyze verify・security の代わり非対応代わりにはなりません。実行ファイルの存在・権限・依存先は確かめません
ユニットの適用・起動・enable、systemctl の実行非対応実行しません。通信もしません
drop-in(.d)やテンプレート(@)の展開非対応展開せず、貼り付けた 1 つのファイルだけを見ます

制限・注意事項

  • 入力は 100,000 文字・2,000 行まで。超えた分は読み止めて通知します。
  • 設定名は一覧にあるものだけを確かめます。一覧にない正しい設定も「未知」と出ることがあります。
  • 硬化の提案は、設定されているかを見るだけです。動作を変えるので、試してから入れてください。
  • 指摘は systemd の man に沿う項目だけです。systemd のバージョンによって、既定値や設定名は変わることがあります。

プライバシーと安全性

貼り付けたユニットファイルは、お使いの端末の中だけで処理されます。サーバーへ送信・保存されることはなく、ブラウザにも保存しません。使用状況の記録に内容やファイル名は含めません。

よくある質問

service の書き方で最低限必要なものは何ですか?
[Service] に実行するコマンドの ExecStart(絶対パス)を書き、[Install] に WantedBy=multi-user.target を書くと、systemctl enable で有効にできます。User を省くと root で動くので、専用のユーザーを指定してください。
ユニットを変えたのに反映されません。
systemctl daemon-reload を実行してから、サービスを再起動してください。daemon-reload を省くと、systemd は古い内容のまま動きます。
Restart=always と StartLimit の関係は?
Restart は終了のたびに再起動します。既定では期間内の起動回数に上限があるので、壊れた service が無限に再起動することは通常ありません。StartLimitIntervalSec=0 にすると上限が無効になります。
cron と systemd timer のどちらを使うべきですか?
どちらでも定期実行はできます。timer は依存関係やログ(journal)と組み合わせやすく、Persistent=true で止まっていた間の分を実行できます。用途に合わせて選んでください。
硬化の設定はそのまま入れてよいですか?
いいえ。ProtectSystem や MemoryDenyWriteExecute などは、書き込む場所や JIT を使う処理の動きを変えます。ステージング環境で試してから入れてください。

nginx Config Studio

リバースプロキシ・SPA・PHP-FPM・HTTP から HTTPS への転送などの設定をフォームから作り、手元の nginx.conf を貼ると構文エラーや見落としやすい点を一覧にします。ブラウザの中だけで動き、nginx は実行しません。

アップロードなし

Docker Compose Studio

docker run のコマンドを compose.yaml に、compose.yaml を docker run に変換します。compose.yaml は構文・Compose Specification・よくある誤りを調べ、セキュリティ上の確認点も一覧にします。コンテナの起動やイメージの取得はせず、入力は端末の外へ送りません。

アップロードなし

.env スタジオ(.env Studio)

.env を貼る・ドロップすると、キーと値を表で確認でき、重複・空の値・書式の誤りを行番号つきで指摘します。値は既定で伏せ、.env と .env.example を比べたり、.env.example・Kubernetes の Secret に書き出したりできます。.env の書き方(dotenv 形式)を確かめたいときに使い、docker compose の変数展開などツール固有の細かい仕様までは判定しません。

アップロードなし

Apache Config Studio

.htaccess・httpd.conf・VirtualHost を貼ると、セクションの構造を木で表示し、閉じ忘れ・未知の指令・公開しすぎの設定を行番号つきで指摘します。https 転送・www の統一・HSTS の書き方の雛形も作れます。

アップロードなし

Caddyfile Studio

Caddyfile を貼ると、サイトブロック・スニペット((name) と import)・matcher(@name)の一覧を木で表示し、括弧の不一致や定義されていない参照を行番号つきで指摘します。リバースプロキシ・静的サイト・SPA・www の転送の雛形も作れます。

アップロードなし

hosts スタジオ(Hosts Studio)

hosts ファイルを貼り付けると、IP とホスト名の一覧を表にし、IP の形式の誤り・重複・localhost の書き換えを行番号つきで指摘します。書式(IP と空白で区切ったホスト名、# のコメント)を確かめるためのツールで、名前解決の結果や、OS へ保存する操作は行いません。保存は書き出したファイルを、管理者権限で OS の hosts の場所に置いてください。

アップロードなし

最終更新: