PythonスクリプトをUbuntuのサービスとして実行する方法について説明します。これにより、スクリプトはシステム起動時に自動的に開始され、常に実行され続けます。

Pythonスクリプトの作成

まず、サービスとして実行したいPythonスクリプトを作成します。以下に、30秒ごとに”hello!”というメッセージをログファイルに書き込む簡単なスクリプトの例を示します。

#!/usr/bin/env python3
import time

def main():
    filepath = "/tmp/hello.log"
    log = open(filepath,'a')
    log.write("hello!\\n")

if __name__ == '__main__':
    while True:
        main()
        time.sleep(30)

このスクリプトを/opt/hello.pyというパスに保存します。そして、スクリプトに実行権限を付与します。

$ sudo chmod 0755 /opt/hello.py

サービスファイルの作成

次に、このスクリプトをサービスとして実行するためのsystemdサービスファイルを作成します。

/etc/systemd/system/hello.service

[Unit]
Description=hello daemon
[Service]
ExecStart=/opt/hello.py
Restart=always
Type=simple
[Install]
WantedBy=multi-user.target

サービスの有効化と開始

最後に、作成したサービスを有効化し、開始します。

$ sudo systemctl enable hello.service
$ sudo systemctl start hello.service

これで、PythonスクリプトはUbuntuのサービスとして実行され、システム起動時に自動的に開始されます。

確認

サービスが正しく動作しているか確認するには、以下のコマンドを実行します。

$ sudo systemctl status hello.service

また、/tmp/hello.logファイルを確認して、”hello!”というメッセージが書き込まれていることを確認します。

以上が、UbuntuでPythonスクリプトをサービス化する方法です。これにより、Pythonスクリプトをバックグラウンドで常に実行させることが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です