我有点迷茫,我有一个Debian
9 服务器和一个Python
Flask
我试图在启动时启动的脚本。
过去我曾经习惯rc.local
在启动时启动一些东西,但从阅读中看来,现在它已经被弃用了。
谁能告诉我它的替代品是什么,我现在最好使用什么方法?
答案1
Debian 9(与许多其他当前 Linux 发行版一样)使用 systemd 来启动和管理您的系统和服务。
与添加行相比,你将面临一些学习曲线,rc.local
但写作单元文件(systemd 术语,实际上相当于服务的启动和停止脚本)将是一项有用的技能。
有关 systemd 的 Debian 特定文档位于https://wiki.debian.org/systemd
这一页https://wiki.debian.org/systemd/Services包含编写您自己的(最小)单元文件所需的详细分步说明:
在目录中创建单元文件“myservice.service”
/etc/systemd/system/
# /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
答案2
您可以使用 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
答案3
没有唯一的答案,但你可以使用类似主管:
Supervisor 是一个客户端/服务器系统,允许用户监视和控制类 UNIX 操作系统上的多个进程。