私は、ユーザーがlocalhostでHTTPを介して対話するNodejsアプリケーションを開発しています。文字通りパラメータがなく、デーモンは依存関係がほとんどなく、ログイン時に起動されます。
私は各プラットフォームの起動スクリプト慣用語に従いたいと思います。つまり、UbuntuではUpstartを、Fedoraではsystemdを意味します。
- システムシステムファイルを書くための良いチュートリアルがありますか?
- 知っておくべき「ベストプラクティス」はありますか?
次のリソースが見つかりました。
私は主に参照として使用する一種のAPIと従うべき基本的なフォーマットを探しています。
答え1
次の例はこのリンクからインスピレーションを得ており、実際にすべてのステップに言及するのではなく、帰属のためにリストされています。http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html
ステップ1:拡張パラメータを使用して、デフォルトでbashプロセスをトリガするこのファイル(場所参照)を作成しました。 Bashとは異なる独自のコマンドを実行できます。
[root@y500-fedora ~]# cat /etc/systemd/system/foo.service
[Unit]
Description=foo
[Service]
ExecStart=/bin/bash -c "while true; do /bin/inotifywait -qq --event close_write /sys/class/backlight/acpi_video0/brightness; su myusername -c '/bin/xbacklight -display :0 -set $(cat /sys/class/backlight/acpi_video0/brightness)'; done"
[Install]
WantedBy=multi-user.target
ステップ2:
リロードsystemd
:
systemctl daemon-reload
新しいサービスを始めましょう:
systemctl enable foo
(また可能ですdisable
)
(オプション)ステップ3:次にマルチユーザーモード(ランレベル3)で再起動すると自動的に起動する必要がありますが、すぐに起動するには:
systemctl start foo
systemctl status foo # optional, just to verify
修正する:完全性を期すために、Ubuntuバイオニックには非常に徹底したマニュアルページがあるようだという点を追加しなければなりません。ここRTFM
答え2
から始めますシステムマニュアルページ。これはシステムとサービスの包括的なリソースを表します。
答え3
Redhatのドキュメントは良いソースです。
答え4
これアーチウィキペディアシステム単位の作成ページは非常に包括的で理解しやすいです。