私のホームフォルダ(pi)にserver.pyというスクリプトがあります。
ログインして手動で実行する必要がないように、Debianに起動時にこのスクリプトを実行させるにはどうすればよいですか?
ベストアンサー1
この回答が最初に書かれたとき、Debian(デフォルトインストール)はバイナリで "SysV" rcスクリプトを使用しましたstart-stop-daemon
。ファイルには、/etc/init.d/skeleton
rcスクリプトの基礎として使用できるサンプルスクリプトがあります。 rcスクリプトがあり、実行可能としてマークされたら、update-rc.d
このコマンドを使用して目的のランレベルに追加できます。
歳月が流れて状況が変わりました。特に2014年には2つの点が変更されました。
- この
/etc/init.d/skeleton
スクリプトは、(5)のマニュアルページのサンプルスクリプトに置き換えられinit-d-script
ました。ただ/etc/init.d/skeleton
完全廃止時の目安としてご利用可能です。フレームワークの内容も大幅に変更され、これ以上呼び出しを作成したり、start-stop-daemon
一部の変数を割り当てる必要はありません。 (望むよりhttps://unix.stackexchange.com/a/480897/5132.) - インストール時にデフォルト値がsystemdに変更され、systemdサービスユニットファイルを作成して(実行可能としてマークする必要はありません)、使用する必要があります
systemctl enable
。ただし、サンプルユニットファイルはありません。 (望むよりhttps://github.com/systemd/systemd/issues/10572.)
したがって、2018年以降、少なくともシステムサービスユニットファイルを作成し、設定でスクリプト名を指定する必要があります(絶対パス名を使用)ExecStart
。質問では特定の方法を指定しませんが、User
スーパーユーザーの代わりにユーザーアカウントでスクリプトを実行できる設定を使用できます。あなたは可能質問に指定されていないことに応じて、スクリプト呼び出しの相対順序とホームディレクトリの(自動)インストール(別々にインストールされている場合)を調整する必要があります。