Debian の起動時に m python スクリプトを実行するにはどうすればよいですか?

Debian の起動時に m python スクリプトを実行するにはどうすればよいですか?

ホーム フォルダー (pi) に次のスクリプトがあります: server.py。

ログインして手動で実行する必要がないように、Debian の起動時にこのスクリプトを実行するにはどうすればよいですか?

答え1

この回答が最初に書かれた時点では、Debian (デフォルトでインストールされた) はバイナリで「SysV」rc スクリプトを使用していましたstart-stop-daemon。ファイルには、rc スクリプトのベースとして使用できるサンプル スクリプトがありました/etc/init.d/skeleton。rc スクリプトが完成し、実行可能としてマークされると、コマンドをupdate-rc.d使用して、必要な実行レベルに追加できます。

年月が経つにつれ、物事は変化してきました。特に 2014 年には、次の 2 つの点が変わりました。

  • この/etc/init.d/skeletonスクリプトは、(5)マニュアルページの例のスクリプトに置き換えられinit-d-script、2018年にのみ利用可能なベースは完全に廃止されました。スケルトンの内容も大幅に変更され、呼び出しを記述したり、変数の割り当て以上のものを記述する/etc/init.d/skeleton必要がなくなりました。(start-stop-daemonhttps://unix.stackexchange.com/a/480897/5132
  • インストールされたデフォルトが systemd に変更されたため、代わりに systemd サービス ユニット ファイル (実行可能としてマークする必要はありません) を記述し、 で有効にする必要がありましたsystemctl enable。ただし、ユニット ファイルの例はありませんでした。(参考:

したがって、2018年現在、設定で(少なくとも)スクリプトに名前を付ける(絶対パス名を使用)systemdサービスユニットファイルを作成する必要がありますExecStart。質問では特定の方法が示されていませんが、設定を使用して、Userスクリプトをスーパーユーザーではなくユーザーアカウントの保護下で実行したい場合があります。そして、かもしれない質問に指定されていない事項にもよりますが、スクリプトを呼び出す相対的な順序と、ホーム ディレクトリが別々にマウントされている場合はホーム ディレクトリの (自動) マウントを調整する必要があります。

答え2

su -c 'SCRIPT' USERの中に入れる/etc/rc.local

関連情報