ubuntu 程序后台运行几个方法

414 篇文章 ¥19.90 ¥99.00
本文介绍了在Ubuntu系统中让程序后台运行的六种方法:1) 添加'&'到命令末尾;2) 将命令置于括号中;3) 使用'nohup'命令;4) 利用'setsid'启动程序;5) 对已运行程序使用'disown -h'使其忽略HUP信号;6) 使用'screen'工具进行多窗口管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 程序后加上“&” ,即 “./myjob &”, 将命令放入到一个作业队列中,可以用命令“jobs” 查看

2. 将1中的命令放在 “()”中, 即 “(./myjob &)”,所提交的作业并不在作业列表中,是无法通过jobs来查看的。

3. 使用"nohup", 即 “nohup ./myjob &”,忽略hangup信号,防止shell关闭时程序停掉。

4. 使用"setsid", 即“setsid ./myjob”。

5. 对已经运行的程序可以用 “disown -hmyjob” 来使某个作业忽略HUP信号。

6. 使用“screen". screen 下的操作会在screen下运行,无法在jobs中查看到。常用的命令有:
 

    a) 新建一个screen: screen-S   my_screen_name. 建好后就可以进行所需要的操作了。
     b) 暂时断开screen: Ctrl-a d
     c)  重新打开screen: Ctrl-a screen_id
     d) 查看所有screen状态: screen -ls
     e) 终止screen: screen -S my_screen_name  -Xkill
     f) 在当前窗口新建窗口: Ctrl-a c
     g) 退出当前窗口: exit

     h) 显示所有窗口列表:Ctrl-a w



http://www.cnblogs.com/LLLONG/p/3183852.html

### Ubuntu后台运行Python命令的方法Ubuntu系统中,后台运行Python命令有多种方法,以下是几种常见的方式及其详细说明: #### 方法一:使用 `nohup` 命令 `nohup` 是一种简单且常用的方法,用于忽略挂起信号(SIGHUP),使程序在关闭终端后继续运行运行以下命令即可将 Python 脚本置于后台运行: ```bash nohup python your_script.py > output.log 2>&1 & ``` - `your_script.py` 是需要运行的 Python 脚本文件名。 - `> output.log` 将标准输出重定向到 `output.log` 文件。 - `2>&1` 将错误输出重定向到标准输出。 - `&` 表示将命令放入后台运行[^3]。 #### 方法二:使用 `setsid` 命令 `setsid` 是另一种更强大的工具,可以创建一个新的会话并运行命令。它比 `nohup` 更加灵活,尤其适合需要避免依赖 `nohup` 的场景。 运行以下命令: ```bash setsid python your_script.py > output.log 2>&1 & ``` 与 `nohup` 类似,`setsid` 也会将脚本的输出保存到指定的日志文件中[^5]。 #### 方法三:使用 `screen` 或 `tmux` `screen` 和 `tmux` 是终端复用工具,允许用户在一个终端会话中运行多个任务,并在关闭终端后继续运行。 例如,使用 `screen`: ```bash screen -S my_python_session python your_script.py ``` 按 `Ctrl+A` 后再按 `D` 键可以分离当前会话,而脚本将继续运行。要重新连接会话,运行: ```bash screen -r my_python_session ``` #### 方法四:直接使用 `&` 符号 如果不需要处理挂起信号或日志记录,可以直接使用 `&` 符号将 Python 脚本放入后台运行: ```bash python your_script.py & ``` 这种方式简单快捷,但不推荐用于长时间运行的任务,因为关闭终端可能会导致任务中断[^2]。 #### 方法五:通过 `systemd` 实现服务化 对于需要长期运行的 Python 程序,可以通过 `systemd` 创建一个服务单元文件来管理其生命周期。例如,创建 `/etc/systemd/system/my_python_service.service` 文件: ```ini [Unit] Description=My Python Service After=network.target [Service] User=root WorkingDirectory=/path/to/your/script ExecStart=/usr/bin/python /path/to/your/script/your_script.py Restart=always [Install] WantedBy=multi-user.target ``` 然后启用并启动服务: ```bash systemctl daemon-reload systemctl enable my_python_service systemctl start my_python_service ``` 这种方式适合需要开机自启或自动重启的 Python 程序。 #### 检查后台运行的 Python 进程 可以使用以下命令检查正在运行的 Python 进程: ```bash ps aux | grep python ``` 或者: ```bash pgrep -fl python ``` 这将列出所有包含关键字 `python` 的进程信息[^4]。 ### 注意事项 - 如果需要切换默认的 Python 版本,可以参考软链接方式设置默认解释器版本[^1]。 - 在后台运行时,确保脚本中有适当的日志记录机制,以便调试和监控。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值