むらじゅん風呂具

ITエンジニアとたまに歌手と司会などで活動する村中淳のブログ

systemdとはなんぞや?という認識なので超簡単に自作コマンドを作って挙動を見る

RHEL 8 へのリプレイス対応のため、
systemdの理解を深めたいと思っている私。

access.redhat.com

上記をはじめ、いろいろとドキュメントを漁るも、
「どういうこっちゃい??」なんで、
さくっと自作コマンドを作ってサービス化しているナレッジがあったので、
舐めるように実践。

qiita.com

具体的な手順に関してはリンク先を参照。

/tmp/hello.logに" hello world " を打ち込むだけのサービスを作成。
手順を踏みながら、掴んでおきたい要点をチェック。

/etc/systemd/system/ の下にUnit定義ファイルを作る

Unit 定義ファイルの場所は2箇所あり。

・ /usr/lib/systemd/system/
ここはシステムのデフォルト。

・/etc/systemd/system/
ここはカスタマイズする際に使用するところ。
なので、上のサービス作成ではこちらを使用。

Unit 定義ファイルの書き方は以下を参照。

enakai00.hatenablog.com

定義ファイルを置き、systemctl list-unit-files --type=serviceにて出力されればよし↓

# systemctl list-unit-files --type=service | grep hello
hello.service                               disabled  

作ったサービスを自動起動登録するとCreated symlinkされる

具体的にこんな動きをする↓

# systemctl enable hello
Created symlink /etc/systemd/system/multi-user.target.wants/hello.service → /etc/systemd/system/hello.service.

multi-user.targetとは、従来のランレベル3を指している。
それからサービスは問題なく起動。
結果を見ると、きちんとhello worldが記述されていた。

# tail /tmp/hello.log
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world

書きながら整理して、なんとなく輪郭が見えてきた。
あとは下記を読むのが良さそう。

equj65.net

うむ。やはり動かしてみて挙動を見るのがはじめの一歩にふさわしいと思った。

「考えるより、感じる」

これ重要なり(個人主観)。