web-dev-qa-db-ja.com

Debian 9-rc.localは非推奨、起動時にpython

少し迷っていますが、Debian 9サーバーと、起動時に起動しようとしているPythonFlaskスクリプトがあります。

過去にrc.localを使用して起動時に物事を起動しましたが、読んだところ、非推奨になっているようです。

誰かがその代替品は何ですか、私が今最もよく使用している方法を教えてもらえますか?

1
fightstarr20

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
    
4
HBruijn

他のすべてのサービスと同様に、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
2
Michael Hampton