CentOSで特定の時間にPythonスクリプトをサービスとして起動/停止する方法は?

CentOSで特定の時間にPythonスクリプトをサービスとして起動/停止する方法は?

Webサービスからオンラインでいくつかの株式データを掻き出すCentOS 7を実行しているVPSにPythonスクリプトを配置しようとしています。私が望むのは、このスクリプトを特定の時間に起動/停止するオペレーティングシステムサービスに設定することです。

どうすればいいですか?

編集:結果は次のとおりですsystemctl status python-script

   Loaded: loaded (/etc/systemd/system/python-script.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Sat 2020-05-16 01:11:50 +0430; 15h ago
 Main PID: 854 (code=exited, status=1/FAILURE)

May 16 01:11:43 boiga.server1.more.com systemd[1]: Started Python Script Serv...
May 16 01:11:50 boiga.server1.more.com python3[854]: Traceback (most recent c...
May 16 01:11:50 boiga.server1.more.com python3[854]: File "/root/script.py", ...
May 16 01:11:50 boiga.server1.more.com python3[854]: await (websocketConnect())
May 16 01:11:50 boiga.server1.more.com python3[854]: NameError: name 'await' ...
May 16 01:11:50 boiga.server1.more.com systemd[1]: python-script.service: mai...
May 16 01:11:50 boiga.server1.more.com systemd[1]: Unit python-script.service...
May 16 01:11:50 boiga.server1.more.com systemd[1]: python-script.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

ベストアンサー1

/etc/systemd/system/python-script.service次の例に示すように、サービスファイルを生成してこのPythonスクリプトを実行するサービスを作成できます。

[Unit]
Description=Python Script Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/bin/python3 /root/script.py
Restart=on-abort


[Install]
WantedBy=multi-user.target

その後、実行systemctl daemon-reloadしてsystemdを再ロードしてsystemctl enable python-scriptサービスを有効にします。

サービスを実行すると、次の結果が表示されます。

systemctl status python-script
● python-script.service - Python Script Service
   Loaded: loaded (/etc/systemd/system/python-script.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Wed 2020-05-13 23:10:30 CEST; 2s ago
  Process: 27405 ExecStart=/usr/bin/python3 /root/script.py (code=exited, status=0/SUCCESS)
 Main PID: 27405 (code=exited, status=0/SUCCESS)

May 13 23:10:30 server1 systemd[1]: Started Python Script Service.
May 13 23:10:30 server1 python3[27405]: Hello World!

スケジュールされたサービスの開始/停止に関してcrontabを使用して、次のことを達成できます。

おすすめ記事