linux后台运行程序及恢复


1. 后台运行的两个命令 & 和 ctr+z

一开始就+“&”具体方法是: [命令]空格[&] 

比如:

[root@pcmxexweb etc]# find / -name xml &
这样,这个查找程序就会在后台运行。它运行的同时不影响你干别的事情。

但是有的时候忘记了在命令之后加上‘&’符号,又不愿意停下此命令重新改写。这是可以按[ctrl+z],把当前程序切入后台。

[root@pcmxexweb etc]# find / -name xml
/etc/xml
/usr/lib64/python2.4/xml
/usr/share/vim/vim70/autoload/xml
/usr/share/hplip/data/xml
/usr/share/java-utils/xml
/usr/share/xml
/usr/share/doc/libvorbis-devel-1.1.2/xml
/usr/local/apache-tomcat-6.0.14/webapps/examples/jsp/xml
/webapp/web/jsp/xml
[root@pcmxexweb etc]# find / -name xml
/etc/xml
/usr/lib64/python2.4/xml
/usr/share/vim/vim70/autoload/xml
/usr/share/hplip/data/xml
/usr/share/java-utils/xml
/usr/share/xml
 
[1]+  Stopped                 find / -name xml
 但是要注意此时在后台的这个程序是处于 Stopped 状态(注意看上面最后一行)。

用jobs查看下后台运行程序。

[root@pcmxexweb etc]# jobs
[1]-  Stopped                 find / -name xml
[2]+  Stopped                 vi /etc/hosts
可以用命令bg 2。效果和一开始就用find / -name xml&是一样了,让此命令在后台运行了。

2.把后台程序调回前台

根据jobs的显示,配合使用fg 2 就把对应的程序调回前台了。

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/smallke/archive/2008/02/27/2124739.aspx

<think> 我们正在回答用户关于“Linux命令行如何让程序后台运行”的问题 根据用户提供的引用内容,我们已经有了几种方法: 方法1:使用 & 符号(需注意输出重定向) 方法2:使用 ctrl+z 结合 bg 命令 方法3:使用 nohup 命令(尤其适用于远程登录断开后仍需要运行的情况) 我们将组织一个清晰的回答,包括: 1. 直接使用 & 符号(并说明输出重定向的重要性) 2. 使用 ctrl+z 和 bg 命令(适用于已经在前台运行程序) 3. 使用 nohup 命令(确保即使终端关闭程序也能继续运行) 同时,按照要求: - 使用中文回答 - 在适当位置添加引用标识(引用来自用户提供的参考内容) - 生成相关问题 注意:由于问题没有数学公式,所以不需要使用LaTeX数学表达式,但如果有数学表达式则按照要求处理。 </think> ### Linux命令行后台运行程序详解 在Linux中让程序后台运行是系统管理的核心技能,以下是可靠解决方案(基于实践及引用资料整合): --- #### **方法1:使用 `&` 符号**(即时后台运行) **操作步骤**: ```bash command_name [参数] &> output.log & # 程序后台运行+日志重定向 ``` **示例**: ```bash python -u app.py &> app.log & # Python程序后台运行,日志存入app.log[^4] ``` **验证方法**: ```bash jobs -l # 查看当前终端后台任务(显示任务编号和PID)[^1][^2] ps aux | grep app.py # 全局进程检索[^1] ``` > ⚠️ 注意:关闭终端会导致进程终止,适用于临时任务。 --- #### **方法2:`Ctrl+Z` + `bg`(前台转后台)** **操作步骤**: 1. 启动程序:`command_name` 2. 按 `Ctrl+Z` 暂停程序并放入后台 3. 输入 `bg %n` 恢复运行(`n`为`jobs`显示的编号)[^2] **示例**: ```bash ./server.sh # 启动程序 Ctrl+Z # 暂停并转后台 jobs # 显示 [1] Stopped ./server.sh bg %1 # 后台继续运行 → [1] Running ./server.sh ``` **终止方法**: ```bash kill %n # 终止指定编号的后台任务[^2] ``` --- #### **方法3:`nohup`(终端关闭后持续运行)** **操作步骤**: ```bash nohup command_name > output.log 2>&1 & # 脱离终端运行,错误日志合并输出[^4] ``` **示例**: ```bash nohup java -jar service.jar > service.log 2>&1 & ``` **关键参数解析**: - `2>&1`:将标准错误(stderr)合并到标准输出(stdout) - `-u`(Python):禁用输出缓冲,实时写入日志[^4] **验证**: ```bash tail -f service.log # 实时监控日志 ``` --- #### **总结对比表** | **方法** | 终端关闭影响 | 日志管理 | 适用场景 | |----------------|-------------|----------------|-----------------------| | **`&`** | 进程终止 | 需手动重定向 | 短期后台任务 | | **`Ctrl+Z+bg`**| 进程终止 | 输出至当前终端 | 意外暂停的程序后台 | | **`nohup`** | **进程保持** | 自动记录到文件 | 长期运行/远程服务器 | > 💡 **最佳实践**:生产环境优先使用 `nohup` + 日志重定向(如 `> file.log 2>&1`)确保稳定性[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值