0

0

LINUX如何后台运行程序_Linux nohup与&命令的使用方法【技巧】

尼克

尼克

发布时间:2025-12-24 14:09:43

|

364人浏览过

|

来源于php中文网

原创

可在Linux中通过nohup、disown、screen、systemd用户服务等方法实现程序后台持久运行:nohup忽略SIGHUP并配合&启动;disown脱离shell控制;screen创建可分离会话;systemd用户服务支持开机自启与自动重启。

linux如何后台运行程序_linux nohup与&命令的使用方法【技巧】

如果您希望在Linux系统中启动一个程序并使其在终端关闭后仍持续运行,则需要借助后台运行机制。以下是实现此目标的多种方法:

一、使用nohup命令配合&符号

nohup命令可使程序忽略SIGHUP信号,避免因终端断开而被终止;配合&符号可将进程置于后台执行。该组合适用于大多数长期运行的任务。

1、在终端中输入命令:nohup your_command &

2、按下回车键执行,系统将返回类似“[1] 12345”的进程编号提示

3、程序的标准输出和错误输出默认写入当前目录下的nohup.out文件

4、关闭终端后,进程仍持续运行

二、重定向nohup输出到指定文件

为便于日志管理,可将nohup产生的输出重定向至自定义文件,避免nohup.out堆积或覆盖。

1、执行命令:nohup your_command > output.log 2>&1 &

2、其中“> output.log”重定向标准输出,“2>&1”将标准错误合并至标准输出

3、该命令确保所有输出均写入output.log,且不影响后台运行特性

三、使用disown命令脱离shell控制

当程序已用&启动但未使用nohup时,可通过disown将其从当前shell作业表中移除,使其不受终端退出影响。

1、先以&方式启动程序:python3 server.py &

2、输入jobs命令查看作业列表,确认其作业号(如[1])

3、执行disown %1(假设作业号为1)

Opus
Opus

AI生成视频工具

下载

4、关闭终端后,该进程将继续运行,不再接收SIGHUP信号

四、结合screen工具创建持久会话

screen提供虚拟终端会话管理功能,允许用户分离(detach)和重新连接(attach)会话,适合交互式长期任务。

1、安装screen(如未安装):sudo apt install screen(Ubuntu/Debian)或sudo yum install screen(CentOS/RHEL)

2、新建命名会话:screen -S my_session

3、在会话中运行目标程序,如:./long_running_script.sh

4、按下Ctrl+A,再按D键分离会话

5、终端关闭后,会话仍在后台运行,可通过screen -r my_session恢复

五、使用systemd用户服务实现开机自启后台程序

对于需长期稳定运行且要求自动重启的程序,可注册为systemd用户服务,由系统服务管理器统一调度。

1、创建服务文件:~/.config/systemd/user/myapp.service

2、在文件中写入[Unit]、[Service]和[Install]段,其中ExecStart设为完整路径的可执行命令

3、启用服务:systemctl --user daemon-reload && systemctl --user enable myapp.service

4、启动服务:systemctl --user start myapp.service

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

356

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

558

2023.08.10

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1343

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

698

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

292

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

771

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

571

2023.07.06

linux删除文件夹的方法
linux删除文件夹的方法

linux删除文件夹的方法:1、使用rm -r命令;2、使用rm -rf命令;3、使用find命令结合rm命令;4、使用图形界面。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

969

2024.02.23

苹果官网入口直接访问
苹果官网入口直接访问

苹果官网直接访问入口是https://www.apple.com/cn/,该页面具备0.8秒首屏渲染、HTTP/3与Brotli加速、WebP+AVIF双格式图片、免登录浏览全参数等特性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

10

2025.12.24

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 5.9万人学习

Git 教程
Git 教程

共21课时 | 2.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号