👨‍🌾

コマンドを簡単に systemctl のサービスにするキット autostart をつくりました

2021/08/24に公開

背景

go でチャッチャッと作ったコマンドをパッパッと service にすることがよくある割に、いつまでたっても systemctl の Unit ファイルの書き方が覚えられず、毎度毎度ググってるのがめんどくさいなと思ってました

起動パラメタとかなし、Type=simple で呼び出すだけのタイプがほとんどだったので、そういうのを 自動的にサービスにしてしまうキット を作って使っているのですが、自分でいうのもなんですがこりゃ便利だと喜んでおります次第ですので、僭越ながら諸兄諸姉にもご紹介させていただきました次第です

キットって変な言葉なんですけど、要するに以下の3つのセットです

  • 雛形 Unit ファイル
  • それを加工するスクリプト setup.sh
  • サービスをイネーブルにしたりディスエーブルにしたするスクリプト autostart.sh

起動パラメタとかなし、Type=simple という条件に合わないプロジェクトでも、生成した Unit ファイルを手で編集していただければ OK です

前提条件

サービスにするコマンドが同じ名前のフォルダにいる、という前提で Unit ファイルを生成します

たとえば、foo コマンドだったら foo フォルダにあるという前提

├───foo
│    foo

使い方

こちらのとおりなのですが、コマンドフォルダ配下にコピーして(おそらくコマンドの git project がすでにある場合が多いかと存じますが、submodule add していただくのが便利かと存じます) setup.sh を実行していただければ、そのコマンド名に応じた unit ファイルを生成いたします

あとは autostart.sh コマンドで、サービスをイネーブル/ディスエーブルにしたり、ステータスを表示したりします

結論

お気に召されましたら github のスターをよろしくお願いいたしますね!

動かないぞ!とか、使いにくい!とか、こういう使い方できないの?とかご奇譚のないご意見がございましたら issue リポートをいただければ至福の次第にございます

Discussion