首页 > 系统相关 >linux后台运行及任务挂后台-linux亲测有效操作001

linux后台运行及任务挂后台-linux亲测有效操作001

时间:2024-04-06 20:31:17浏览次数:24  
标签:bg jobs 任务 命令 001 linux 后台 disown

由于命令行耗时太久,突然想把进程挂后台走人怎么办?

01 前台转到后台
1. 输入ctrl + z 将该前台任务挂起

^Z
[1]+  Stopped XXXXXXXX

2. 运行jobs命令,查看任务号(可以看到run.sh对应的任务号是1)

jobs -l  #-l显示pid                                                                                                 
[1]  + suspended  XXXX

3. 运行bg命令,将任务从前台转到后台,这里的任务就是1,
bg %1

4.jobs检查
jobs -l  #-l显示pid  
[1]+  Running    XXXX
02 后台转到前台
1. 查看后台任务(同一终端)

jobs
[1]  + running   XXXXXXX

2. 运行fg命令,将任务从后台转到前台

fg %1                    
[1]  + XXXXXX

重点是忘记Screen了,成本巨高,那就挂着开着吧,也没有nohup,这时候就要Ctrl+Z了。

仅在当前终端有效!其他的终端无法显示!

小结:通过 jobs 命令查看工作ID,使用 bg 命令可以把前台程序放入后台,使用 fg 命令可以把后台程序拉到前台,jobs、bg、fg 的配合使用能有效管理前后台任务。

是否可行?可

让程序无视 SIGHUP 信号的命令 nohup 与 disown

为了确保程序即使在终端断开链接后仍然可以在后台运行,需要用到 nohup 或者 disown 命令:

# 常见的 nohup 命令
nohup bash running.sh > file.out 2>&1 &

# 或者使用 disown -h 命令
bash running.sh > file.out 2>&1 & disown -h

但是确实不如screen啊!
最佳解决策略
1. 等
2. 进入screen吧,下次长记性!

幸好,我们可以转入screen,开心嘛?!

如何将进程移到screen?

1. Ctrl+Z进程

2. bg恢复进程在后台运行

3. 解除从属关系disown %1

启动一个screen   -S or -r

查找进程PID  jobs -l可查询

yum -y install reptyr

执行reptyr -T 132385 将进程移到该screen

但是,我们转到后台运行不影响当前终端退出,是可行的!

3 解除从属关系!

使用disown命令。如果你已经使用bg将一个任务放到后台,你可以使用disown命令来移除这个任务与当前终端的关联。这样,当你退出终端时,任务不会收到SIGHUP信号。在使用bg后,你可以简单地输入disown命令。解除从属关系disown %1即可。

使用 disown %1从shell中夺走所有权

disown %1
#不影响退出终端,亲测有效

使用`disown %1`从shell中夺走作业的所有权意味着,即使你退出shell,该作业也不会因为收到`SIGHUP`信号而被停止。然而,这个操作并不影响程序的正常执行逻辑。程序如果达到了它的自然结束点或遇到了使其停止的条件,它仍然会停止运行。

换句话说,`disown`命令只影响程序与终端会话之间的关系,防止终端关闭时向程序发送`SIGHUP`信号。它不会改变程序内部的逻辑。如果程序完成了它的任务,它就会像平时一样结束,无论它是否被`disown`。

所以说,没有screen也没关系呀!

总结

命令用法说明
jobsjobs -l查看任务详情pid等
bgbg %工作ID将工作ID任务调入后台运行
fgfg %工作ID将工作ID任务调入前台运行
killkill -n [ PID | %工作ID ]向任务发送信号
&command-line &将任务立即放入后台运行
nohupnohup command-line忽视 SIGHUP 信号
disowncommand-line disown -h
or
disown %1

忽视 SIGHUP 信号

亲测disown %1有效

哈,可以下班了!下班啦!

标签:bg,jobs,任务,命令,001,linux,后台,disown
From: https://blog.csdn.net/weixin_44874487/article/details/137435915

相关文章

  • Linux的学习之路:4、权限
    一、Linux权限的概念权限我们都熟悉,最常见的就是在看电视时需要vip这个就是权限,然后在Linux就是有两个权限,就是管理员也就是超级用户和普通的用户命令:su[用户名]功能:切换用户。例如,要从root用户切换到普通用户user,则使用suuser。要从普通用户user切换到root用户则使......
  • LeetCode 面试经典150题---001
    少年听雨歌楼上,红烛昏罗帐。壮年听雨客舟中,江阔云低、断雁叫西风而今听雨僧庐下鬓已星星也。悲欢离合总无情,一任阶前、点滴到天明。###88.合并两个有序数组给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的......
  • [转帖]【Linux】使用 apt-get 查询并安装指定版本的软件
    https://zhuanlan.zhihu.com/p/540712989 一、通过apt-get安装指定版本的软件$sudoapt-getinstallpackage=versionversion是软件版本号,package是要安装的软件二、查询指定软件有多少个版本1、通过网站搜索https://packages.ubuntu.com/2、使用apt-cachem......
  • JetBrains IDE 2024.1 (macOS, Linux, Windows) 发版 - 开发者工具
    JetBrainsIDE2024.1(macOS,Linux,Windows)-开发者工具CLion,DataGrip,DataSpell,Fleet,GoLand,IntelliJIDEA,PhpStorm,PyCharm,Rider,RubyMine,WebStorm请访问原文链接:JetBrainsIDE2024.1(macOS,Linux,Windows)-开发者工具,查看最新版。原创作品,转载请......
  • 【附源码】JAVA计算机毕业设计足球青训俱乐部管理后台系统(springboot+mysql+开题+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着足球运动的日益普及,足球青训作为培养足球后备人才的重要基地,其管理和发展逐渐受到广泛关注。然而,传统的青训俱乐部管理方式往往存在着信息化程度......
  • Docker学习笔记(二):在Linux中部署Docker(Centos7下安装docker、环境配置,以及镜像简单使用
    一、前言记录时间[2024-4-6]前置文章:Docker学习笔记(一):入门篇,Docker概述、基本组成等,对Docker有一个初步的认识在上文中,笔者进行了Docker概述,介绍其历史、优势、作用,以及基本组成。通过此,相信大家对Docker有了一个初步的认识。接下来就进入Docker的安装、环境配置,和简......
  • 在Linux服务器上运行springBoot项目!
    今天闲的无聊,写了一个定时发送邮件到指定邮箱的一个小项目,因为写的很粗糙,这里就不展示代码了,主要记录一下用到的技术:1.JavaMail2.Spring-Task3.在Linux上运行一、JavaMail:JavaMail是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提......
  • Linux查看日志的几种方法
    最常用查看日志方法:·实时日志:tail-fXXX.log·搜索关键字附近日志:cat-nfilename|grep"关键字"查看日志常用命令:tail:-n是显示行号;相当于nl命令;例子如下:tail-100ftest.log实时监控100行日志tail-n10test.log查询......
  • linux - GPG 非对称加密工具
    GNUPrivacyGuard(GPG)是一种主要设计用于使用公钥加密技术对数据进行加密和签名的工具。然而,它还包含仅使用用户提供的密码来加密数据的能力,并且支持多种加密算法。1.查看gpg支持的算法gpg--version2.生成密钥#使用默认选择gpg--generate-key#更灵活的算法选择g......
  • linux文件权限管理1
    id+用户名可以查看用户详细信息这里第一个rw-代表属主对应权限,可读可写,第二个r--代表属组权限,即可读,第三个r--代表其他人,后面第一个root代表用户,第二个root代表用户组开头的-代表为普通文件,其他类型还有l软链接,d文件夹 在这里,我们创建了try.sh文件,并且在执行过程中发现没......