コマンドを簡単に systemctl のサービスにするキット autostart をつくりました
背景
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