nohup 挂后台代码

本文介绍了如何使用nohup命令在Linux环境下异步执行Python脚本(yourcodename.py)并传递参数,同时提供自定义的日志文件名。同样适用于执行Bash脚本,确保进程在后台持续运行。
nohup python yourcodename.py --yourpara='yourpara'>savename.log 2>&1 &

yourcodename 处填写要运行的代码名称,可附带参数

savename处可替换为你自定义的log文件名

也可以运行bash文件

nohup bash ****.sh **** >savename.log 2>&1 &
在服务器上将运行中的代码进程后台执行,可以通过以下几种方式实现: 1. **使用 `Ctrl+Z` 和 `bg` 命令** 在终端中运行代码时,可以通过按下 `Ctrl+Z` 将当前运行的进程起到后台并暂停执行。然后使用 `bg` 命令让该进程继续在后台运行。这种方式适用于需要临时将前台进程转到后台的情况。例如: ```bash bg ``` 这种方式的灵活性在于可以随时切换进程的运行状态,也可以通过 `fg` 命令将进程重新调回前台[^1]。 2. **使用 `nohup` 命令** `nohup` 命令可以使得进程在终端关闭后仍然继续运行,并且可以结合 `&` 符号将进程直接放到后台执行。例如: ```bash nohup python -u xxx.py >xxx.log 2>&1 & ``` 这条命令会启动一个 Python 脚本并在后台运行,同时将标准输出和错误输出重定向到 `xxx.log` 文件中。运行成功后会输出一个 PID(进程标识符),如果需要结束该进程,可以通过 `kill -9 PID` 命令终止它[^2]。 3. **使用 `disown` 命令** 如果已经通过 `Ctrl+Z` 起进程并使用 `bg` 将其放到后台运行,可以通过 `disown` 命令来防止进程在终端关闭时被终止。例如: ```bash disown -h %1 ``` 这条命令会使得作业 `%1` 忽略 HUP(断)信号,从而在终端关闭时仍然保持运行。如果需要让所有作业都忽略 HUP 信号,可以使用: ```bash disown -ah ``` 如果只想让正在运行的作业忽略 HUP 信号,则可以使用: ```bash disown -rh ``` 这种方式特别适合需要长时间运行的任务,例如深度学习训练或数据处理任务[^1]。 4. **使用 `screen` 命令** `screen` 是一个虚拟终端管理工具,可以创建多个虚拟终端会话,并且这些会话可以在断开连接后继续运行。首先启动 `screen` 会话: ```bash screen -S session_name ``` 然后在这个会话中运行代码。如果需要暂时离开,可以按下 `Ctrl+A`,然后按 `D` 键来分离当前会话。之后可以通过以下命令重新连接到该会话: ```bash screen -r session_name ``` 这种方式非常适合需要长时间运行的任务,比如系统备份、文件传输等,因为它允许用户随时断开连接并重新连接到同一个会话[^3]。 5. **使用 `ps` 命令监控后台进程** 一旦代码后台运行,可以使用 `ps` 命令来查看进程的状态。例如: ```bash ps aux | grep python ``` 这条命令会列出所有与 Python 相关的进程信息,包括进程的 PID、CPU 和内存使用情况等。这对于监控后台任务的运行状态非常有用[^4]。 ### 示例代码 以下是一个简单的 Python 脚本示例,它可以长时间运行并输出计数结果: ```python #!/usr/bin/env python import time a = 1 while True: a += 1 print(a) time.sleep(2) ``` 如果希望这个脚本在后台持续运行,可以使用 `nohup` 命令: ```bash nohup python -u script.py >output.log 2>&1 & ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值