ubuntu18启动python_Ubuntu18.04 部署Python脚本开机自启,稳定解决方案

Ubuntu10.04 开机自启

Ubuntu在16.04版本以后就不再使用 initd 管理系统了,改用 systemd 当然,我们还是可以通过软链接,创建systemd文件的形式启用rc.local。但是在rc.local中执行启动脚本也有很多不便之处,比如日志输出和守护进程。。。

更简单高效地添加开机自启和守护进程

PM2 是一个生产级流程管理器,可以轻松管理后台进程。PM2有着良好的命令行使用体验,可以用简单、方便的操作重启崩溃程序,查看程序日志和资源使用情况。

安装 PM2

PM2是 Node 界的东西,但是并不妨碍我们用它来启动Python脚本。Node 界的东西,安装之前是肯定要安装Node 的,然后是 npm注意:下面的命令需要在root账户下执行。pm2是会区分用户的,root账户启动的脚本其他账户是不可见的,必须要切换到root下执行 pm ls 才能看到root账户使用pm2启动的程序

安装Node.js

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -

apt install -y nodejs安装 npm

npm install pm2 -g

使用PM2启动Python脚本

启动命令:pm2 start 文件路径 注意:这里需要在脚本内指定解释器路径,或者使用打包后的文件 我这里使用的是pyinstaller打包后的文件

pm2 start flaskDemo

查看启动列表

注意:查看root用户的启动列表需要切换到root用户下

pm2 ls

示例:

root@mydev:/home/dev# pm2 ls

┌─────┬────────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐

│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │

├─────┼────────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤

│ 1 │ flaskDemo │ default │ N/A │ fork │ 2287 │ 36m │ 3 │ online │ 0% │ 4.0mb │ root │ disabled │

└─────┴────────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Module

┌────┬───────────────────────────────────────┬────────────────────┬───────┬──────────┬──────┬──────────┬──────────┬──────────┐

│ id │ module │ version │ pid │ status │ ↺ │ cpu │ mem │ user │

├────┼───────────────────────────────────────┼────────────────────┼───────┼──────────┼──────┼──────────┼──────────┼──────────┤

│ 0 │ pm2-logrotate │ 2.7.0 │ 2146 │ online │ 0 │ 0.3% │ 43.7mb │ root │

└────┴───────────────────────────────────────┴────────────────────┴───────┴──────────┴──────┴──────────┴──────────┴──────────┘

root@mydev:/home/dev#

我这里安装了 PM2的日志管理工具,pm2-logrotate。pm2-logrotate 提供了自动化的日志轮换功能。 安装pm2-logrotate

pm2 install pm2-logrotate

查看进程日志

查看日志:pm2 logs 应用名称

pm2 logs flaskDemo

查看进程描述信息

可以通过执行下面的命令查看日志的存储路径和解释器、运行时间、脚本路径等信息。

pm2 describe flaskDemo

示例:

root@mydev:/home/dev# pm2 describe flaskDemo

Describing process with id 1 - name flaskDemo

┌───────────────────┬─────────────────────────────────────┐

│ status │ online │

│ name │ flaskDemo │

│ namespace │ default │

│ version │ N/A │

│ restarts │ 3 │

│ uptime │ 50m │

│ script path │ /home/dev/flaskDemo │

│ script args │ N/A │

│ error log path │ /root/.pm2/logs/flaskDemo-error.log │

│ out log path │ /root/.pm2/logs/flaskDemo-out.log │

│ pid path │ /root/.pm2/pids/flaskDemo-1.pid │

│ interpreter │ none │

│ interpreter args │ N/A │

│ script id │ 1 │

│ exec cwd │ /home/dev │

│ exec mode │ fork_mode │

│ node.js version │ N/A │

│ node env │ N/A │

│ watch & reload │ ✘ │

│ unstable restarts │ 0 │

│ created at │ 2019-12-09T09:01:47.911Z │

└───────────────────┴─────────────────────────────────────┘

Divergent env variables from local env

┌────────────────┬────────────────────────────────────────┐

│ SSH_CONNECTION │ 192.168.206.1 54924 192.168.206.146 22 │

│ XDG_SESSION_ID │ 2 │

│ SSH_CLIENT │ 192.168.206.1 54924 22 │

└────────────────┴────────────────────────────────────────┘

Add your own code metrics: http://bit.ly/code-metrics

Use `pm2 logs server [--lines 1000]` to display logs

Use `pm2 env 1` to display environment variables

Use `pm2 monit` to monitor CPU and Memory usage server

重启进程

重启进程:pm2 restart 应用名称

pm2 restart flaskDemo

停止进程

停止进程:pm2 stop 应用名称

pm2 stop flaskDemo

删除进程

删除进程:pm2 delete 应用名称

pm2 delete flaskDemo

让 PM2 开机自启

刚安装的PM2是不会随操作系统启动的,需要我们手动执行命令来打开PM2的开机自启功能。 在Ubuntu18.04上,这一步很简单,自动化的脚本帮我们完成了创建systemd文件和创建软链接的工作。我们只需要保存转存文件就可以了。

执行PM2自启命令

pm2 startup

很遗憾,这一步我忘记保存输出内容了。 这个命令执行后,系统会创建启动脚本,在Ubuntu18.04上是会自动添加软链接的,如果是别的版本,可能就需要你按照提示输出的命令去执行。 其它的版本可能会输出一些命令,按照提示复制到bash输入并回车就可以了,这一步其实就是添加一个系统自启服务。

最后需要我们执行下面的命令保存转存文件,这样PM2自启后就会启动我们的应用。

pm2 save

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值