少し迷っていますが、Debian
9サーバーと、起動時に起動しようとしているPython
Flask
スクリプトがあります。
過去にrc.local
を使用して起動時に物事を起動しましたが、読んだところ、非推奨になっているようです。
誰かがその代替品は何ですか、私が今最もよく使用している方法を教えてもらえますか?
Debian 9(他の多くの現在のLinuxディストリビューションと同様)は、systemdを使用してシステムとサービスを開始および管理します。
rc.local
に行を追加する場合と比較して、少し学習曲線に直面しますが、ユニットファイルを記述します(効果的なものについてはsystemdの専門用語)サービスの開始および停止スクリプトに相当)は、習得に役立つスキルになります。
Systemdに関するDebian固有のドキュメントは https://wiki.debian.org/systemd にあります。
ページ https://wiki.debian.org/systemd/Services には、独自の(最小限の)ユニットファイルを作成するために必要な詳細な手順が含まれています。
ディレクトリ/etc/systemd/system/
にユニットファイル「myservice.service」を作成します
# /etc/systemd/system/myservice.service
[Unit]
Description=My Service
After=network.target
[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/myservice
[Install]
WantedBy=multi-user.target
Systemdをリロードして、変更した/新しいユニットファイルをsystemctl daemon-reload
で取得します。
新しいサービスを有効にして開始します
systemctl enable myservice.service
systemctl start myservice.service
他のすべてのサービスと同様に、systemdユニットを使用して起動します。
これを設定する方法については、インターネット上に多数のチュートリアルがあります。または、次のようなスケルトンユニットから始めることもできます。
[Unit]
Description=uWSGI instance to serve my project
After=network.target
[Service]
User=you
Group=www-data
WorkingDirectory=/home/you/project
Environment="PATH=/home/you/project/venv/bin"
ExecStart=/home/you/project/venv/bin/uwsgi --ini uwsgi.ini
[Install]
WantedBy=multi-user.target