服务器上后台运行python程序

简介: 服务器上后台运行python程序

写在最前面

一直是pycharm运行服务器上代码,但存在问题:本机电脑休眠则程序停止运行。但深度学习代码一跑一整天,不小心关了几次后很难受

实习老师向我介绍了nohup,完美解决了这个问题

此外,在服务器上跑代码时,直接在命令行运行代码,常常遇到代码还没跑完却因为网络不稳定等异常终止的问题,所以可以通过nohup指令将代码后台执行,也便于同时运行多个程序。

还可以用它来下载torch那种,需要安装几个小时的包

参考:https://blog.csdn.net/huavhuahua/article/details/121145512

https://blog.csdn.net/m0_38024592/article/details/103336210

https://blog.csdn.net/Yonggie/article/details/120267134

环境

安装nohup

pip install nohup

直接run代码报错:nohup: failed to run command `python3‘: No such file or directory

注意:还是要切换到相应的conda环境下,然后cd到代码目录,最后run代码

代码示例

nohup后台执行,忽略输入并将输出保存到指定文件

nohup python -u myfile.py >> myresult.out 2>&1 &

其中,myfile.py为需要运行的程序,myresult.out为输出文件,myresult.out默认与.py文件保存在同一路径下。

python指令也可以换成其他程序执行指令来运行其他语言的程序,其余不变

nohup后台执行py文件,并将执行的正常日志和错误日志都输入到myresult2.out中

-u 参数,使得python不启用缓冲。解决python的输出有缓冲,导致nohup.out并不能够马上看到输出的问题。

nohup指令

nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup。

nohup在不规定的情况下,所以输出内容会到nohup.out中

& 后台运行

&为后台运行

使用 & 在程序结尾来让程序自动运行。

2>&1 错误内容重定向到标准输出

0 表示stdin标准输入,用户键盘输入的内容

1 表示stdout标准输出,输出到显示屏的内容

2 表示stderr标准错误,报错内容

2>&1 是一个整体,> 左右不能有空格,即将错误内容重定向输入到标准输出中去。

下面两条代码相同,只是1(标准输入)被省略了,而后面的my.log 2>&1 又将2(错误内容)输入到标准输出,然后前面的标准输出又输入到my.log中,意思错误和标准内容都会输出到my.log中

nohup python my.py >> my.log 2>&1 &
nohup python my.py 1 >> my.log 2>&1 &

以python环境不间断的运行myfile.py这个脚本,并且将脚本输出的内容重定向输入my.log中(>>意为追加,如果用>会让其中的内容清空)

nohup python my.py >> my.log 2>&1 &

代码可拆成两块。即:

# 等价于下面两行的内容
nohup python my.py 1>> my.log &
nohup python my.py 2>> my.log &
  • 上面代码就是将错误和标准都输出到my.log,最初的代码只是简化了。
    假如为2>1,那就是将错误内容输出到文件1中
    加2>&1中的&是为了区别文件1和1(标准输出)
  • nohup tomcat.sh > /dev/null 2>&1 & 也是一样的,将错误和标准全部丢入/dev/null 中,全部销毁。

查看当前python相关进程

Linux可以通过ps指令相关参数查看各种进程,但查看所有进程往往等于大海捞针,所以查看python相关进程在运行代码时更为实用

ps -ef |grep python

可以看到当前有两个程序正在运行,进程号分别为2173876和2183310

结束进程

如果不想某个程序继续执行了,可以结束进程

kill -9 <进程号>

nohup后台pip下载安装

同理

终端如果直接pip install,关闭中断后pip自然也被中断了。

但是有些他就是下的慢,比如torch,需要几个小时。

解决:用nohup。但是不能直接nohup pip,因为pip本身是Python的模块。

nohup python -m pip install xxx&

其会挂上一个程序直到跑完,其输出会在nohup.out,可以查看日志。

缺点是,日志只会显示downloading xxx,并不显示进度。你也不知道完没完成,只能通过top命令找进程id查看是否安装完。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
目录
相关文章
|
9月前
|
人工智能 JavaScript API
零基础构建MCP服务器:TypeScript/Python双语言实战指南
作为一名深耕技术领域多年的博主摘星,我深刻感受到了MCP(Model Context Protocol)协议在AI生态系统中的革命性意义。MCP作为Anthropic推出的开放标准,正在重新定义AI应用与外部系统的交互方式,它不仅解决了传统API集成的复杂性问题,更为开发者提供了一个统一、安全、高效的连接框架。在过去几个月的实践中,我发现许多开发者对MCP的概念理解透彻,但在实际动手构建MCP服务器时却遇到了各种技术壁垒。从环境配置的细节问题到SDK API的深度理解,从第一个Hello World程序的调试到生产环境的部署优化,每一个环节都可能成为初学者的绊脚石。因此,我决定撰写这篇全面的实
2158 67
零基础构建MCP服务器:TypeScript/Python双语言实战指南
|
8月前
|
人工智能 Linux 开发工具
Python从零到一:手把手带你写出第一个实用程序
Python语法简洁易懂,适合编程新手入门。它广泛应用于人工智能、自动化办公、Web开发等领域。学习Python可快速搭建项目,拥有丰富库支持和强大社区资源。通过本教程,你将掌握基础语法、环境搭建、程序逻辑控制及实战项目开发,开启编程之旅。
1193 0
|
7月前
|
设计模式 决策智能 Python
Python条件控制:让程序学会"思考"的魔法
本文深入浅出地讲解Python条件控制,从基础if语句到多分支、嵌套结构,再到简洁的三元表达式与Python 3.10新增的match-case模式匹配,结合电商折扣、会员等级、ATM系统等实战案例,全面掌握程序“智能决策”的核心逻辑。
532 0
|
8月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1469 1
|
9月前
|
Windows
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
Windows下版本控制器(SVN)-验证是否安装成功+配置版本库+启动服务器端程序
270 2
|
9月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
2405 0
|
6月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与云服务器ECS啥区别?新手帮助教程
阿里云轻量应用服务器适合个人开发者搭建博客、测试环境等低流量场景,操作简单、成本低;ECS适用于企业级高负载业务,功能强大、灵活可扩展。二者在性能、网络、镜像及运维管理上差异显著,用户应根据实际需求选择。
549 10
|
6月前
|
运维 安全 Ubuntu
阿里云渠道商:服务器操作系统怎么选?
阿里云提供丰富操作系统镜像,涵盖Windows与主流Linux发行版。选型需综合技术兼容性、运维成本、安全稳定等因素。推荐Alibaba Cloud Linux、Ubuntu等用于Web与容器场景,Windows Server支撑.NET应用。建议优先选用LTS版本并进行测试验证,通过标准化镜像管理提升部署效率与一致性。
|
6月前
|
弹性计算 ice
阿里云4核8g服务器多少钱一年?1个月和1小时价格,省钱购买方法分享
阿里云4核8G服务器价格因实例类型而异,经济型e实例约159元/月,计算型c9i约371元/月,按小时计费最低0.45元。实际购买享折扣,1年最高可省至1578元,附主流ECS实例及CPU型号参考。
690 8

推荐镜像

更多