当前位置: 首页 > news >正文

linux环境下运行程序常用的nohup和的区别

前言

复杂问题简单记,先了解一下概念,对于一般的小程序而言这两种启动方法应该用不上,如果程序瞬间的就结束了,是否挂起与是否后台也就没有了意义,所以标题中提到的方式常用来启动需要一直运行的程序,比如游戏服务器。

假如我们直接通过命令行./game_server运行一个简单的游戏服务器,那么会发现这个运行程序霸占了整个命令窗口,此时,我们无法再运行其他的程序,所有的输入都变成了game_server的输入,而命令终端此时也只能输出game_server程序的输出信息了。

接着再来了解两个信号,针对于霸占了命令终端的game_server我们可以采用以下方式将其终止掉,使用Ctrl+C组合键,实际上是给程序发送了SIGINT信号,可以以直接关掉命令终端,这个进程也会死掉,实际上是给程序发送了SIGHUP信号,而标题中的所说的两种方式就是针对于这两种信号的。

两种方式的区别

  • nohup
    nohupno hang up的缩写,就是不挂断的意思,忽略SIGHUP信号,在关闭命令终端后程序依旧运行

  • &
    &是只后台运行,即忽略SIGINT信号,也就是按Ctrl+C不会终止程序,但是关闭命令行终端程序终止

总结

所以要想程序忽略SIGINTSIGHUP两种信号需要两种表示方法一同使用,总结如下

命令忽略信号按Ctrl+C结果关闭终端标准输入输出
./game程序终止程序终止只能给game输入终端输出
nohup ./gameSIGHUP程序终止依旧运行输入被忽略输出到nohup.out文件
./game &SIGINT依旧运行程序终止输入正常,终端可用无输出
nohup ./game &SIGINT、SIGHUP依旧运行依旧运行输入正常,终端可用输出到nohup.out文件

相关文章:

  • 排序算法系列之(五)——为目标打好基础的希尔排序
  • linux环境下查找包含指定内容的文件及其所在行数
  • Mysql查询可通过给条件字段添加索引提高查询速度
  • Mysql开启、查看慢查询日志
  • IP地址常见分类:A类、B类、C类、D类、E类
  • Mysql表连接:内连接、外连接、交叉连接、自然连接真的都不一样吗
  • C/C++版本更迭历程
  • gcc编译生成可执行文件的过程中发生了什么
  • Mysql中explain命令简析
  • Python利用requests模块实现代理访问网络
  • linux环境下查看C/C++程序的堆栈信息
  • Mysql调优之Using filesort一般情况
  • gdb启动多进程程序并切换调试进程
  • Mysql中使用count加条件统计
  • 排序算法系列之(六)——逐步砍掉树杈的堆排序
  • echarts的各种常用效果展示
  • es6
  • Flex布局到底解决了什么问题
  • HTML-表单
  • javascript从右向左截取指定位数字符的3种方法
  • nfs客户端进程变D,延伸linux的lock
  • Redis 中的布隆过滤器
  • Webpack 4x 之路 ( 四 )
  • 包装类对象
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用 @font-face
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 腾讯优测优分享 | 你是否体验过Android手机插入耳机后仍外放的尴尬?
  • 小李飞刀:SQL题目刷起来!
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 用Canvas画一棵二叉树
  • 用mpvue开发微信小程序
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • 新海诚画集[秒速5センチメートル:樱花抄·春]
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (4) PIVOT 和 UPIVOT 的使用
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (二)c52学习之旅-简单了解单片机
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (三分钟)速览传统边缘检测算子
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (原創) 物件導向與老子思想 (OO)
  • (转)Google的Objective-C编码规范
  • (转)德国人的记事本
  • .dwp和.webpart的区别
  • .equals()到底是什么意思?
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项