📜  永远运行 python 脚本 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:40:41.196000             🧑  作者: Mango

永远运行 Python 脚本

在某些场景下,我们希望 Python 脚本在系统启动后一直运行,直到系统关闭或脚本主动退出。本文将介绍如何实现这样的功能。

使用 systemd

一种常见的方法是使用 systemd。systemd 是 Linux 系统中常用的服务管理器,可以管理系统服务的启动、停止、重启等操作。以下是使用 systemd 运行 Python 脚本的步骤:

  1. 创建一个 Unit 文件,其文件名以 .service 结尾,例如 my-script.service。在该文件中添加以下内容:
[Unit]
Description=My Script

[Service]
Type=simple
ExecStart=path/to/python /path/to/my-script.py
Restart=always
User=myuser

[Install]
WantedBy=multi-user.target

ExecStart 行中,将 path/to/python 替换为 Python 解释器的路径(可以使用 which python 命令查找),将 /path/to/my-script.py 替换为要运行的 Python 脚本的路径。在 User 行中,将 myuser 替换为要运行脚本的用户。

  1. 将该文件复制到 /etc/systemd/system/ 目录下:
sudo cp my-script.service /etc/systemd/system/
  1. 启动服务:
sudo systemctl start my-script

现在你的 Python 脚本已经在后台运行了,可以使用以下命令查看状态:

sudo systemctl status my-script

如果想要让脚本在系统启动时自动运行,可以使用以下命令:

sudo systemctl enable my-script
使用 crontab

另一种方法是使用 crontab。crontab 是一种在指定时间运行命令的工具,也可以用来实现在系统启动时运行指定脚本的功能。以下是使用 crontab 运行 Python 脚本的步骤:

  1. 打开 cron 编辑器:
crontab -e
  1. 在打开的编辑器中添加一行:
@reboot path/to/python /path/to/my-script.py &

其中 path/to/python/path/to/my-script.py 与上述方法相同。

  1. 保存并退出编辑器。

现在你的 Python 脚本已经在后台运行了,可以使用以下命令查看状态:

ps aux | grep my-script.py
小结

这里介绍了两种在系统启动后一直运行 Python 脚本的方法:使用 systemd 和使用 crontab。前者更加灵活,可以实现更多定制化的需求,而后者则更加简单易用。根据实际需求选择适合自己的方式即可。