k2ss.info
systemdは怖くない | @K2SS - 日々、邁進
ちょうど1年前ぐらいからVPSを使い始め、開発用(かつ仕事用)のサーバとして日々運用しています。 昔は個人用のPCを使っていましたが、今は常時稼働・外部からの接続・自分の勉強のためなどでVPSを使っています。 (そしてずっとUbuntuユーザなので「apt! deb! gnome! (Unity?)」です)。 個人で開発したツールやサービスについては、これまでサーバ上で動作させる際にはSysV initを利用してきました。 ところが、先日のUbuntuアップグレード(16.04LTS→18.04LTS)の際、愛用していた「sysv-rc-conf(GUIチックにサービスの起動設定を行えるツール)」がインストールできなくなりました。 どうやら巷ではSysV initやUpstartからsystemdへの移行が進んでいるようで、Ubuntuも17.04でsystemdへ切り替わったようです。 ※個々の違いや経緯については、詳しい記事がたくさんあるのでそちらを御覧ください。 なぜsystemdなのか? 上記でも少し触れられていますが、実行時の環境変数引き継ぎなどで過去何度かハマった経緯もあったため、これを機にsystemdへ移行することを決意しました。 これまで自分が作成したサービス起動スクリプトは/etc/init.d/{serviceName}で用意していましたが、数も多くないためすべて書き換えました。 Unit定義ファイルの作成 簡単に言うとサービスの管理に関する設定ファイルで、/etc/systemd/system以下に作成します。 以降は個人用に使っているRedmineの場合として記載しています。 # vim はお使いのエディタに置き換えてください vim /etc/systemd/system/redmine.service 設定を記述していきます。 [Unit] Description=Redmine Appliation [Service] User=redmine Group=redmine PIDFile=/var/run/redmine.pid WorkingDirectory=/path/to/redmine ExecStart=bundle exec unicorn -D -c /path/to/redmine/unicorn.rb -E