机票业务管理系统为相关技术公司为航空公司机票代理人提供的机票业务管理系统。

此业务系统一般包括业务订单管理,政策管理,财务管理等功能。通过业务管理系统,整合代理人的分销体系,将分销体制纳入正规有序化的管理,提供代理人的工作效率,降低人力成本。以开源节流的方式为代理人增加更多的收益。

文件:590m.com/f/25127180-497629850-88e86e(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

0x00 摘要
在Linux做开发的同学也许会遇到这种困境:

运行了一个程序两个小时之后,你心想:再有一个小时程序就运行完了,于是你兴致勃勃的准备看结果。
女朋友突然发飙让自己立刻出现。
此时你突然发现自己没有使用 nohup,这就意味着这个程序在自己离开之后会死掉。之前两个小时的运行时间就浪费了。
于是你满怀悔恨的按下了CTR+c,然后使用 nohup 重新运行程序。
慢着,其实这种忘记 nohup 的情况是可以补救的,下面我们就看看如何操作。

0x01 问题描述
1.1 为何关闭进程
当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。

原因是:SSH会话关闭时,ssh所关联的pty关闭,系统会给这个pty所关联的session中的所有进程发送SIGHUP信号,SIGHUP的默认信号处理程序是终止进程,除非进程自己处理了SIGHUP。

因此,我们的解决办法就有两种途径:

要么让进程忽略 HUP 信号;
要么让进程运行在新的会话里从而成为不属于此终端的子进程;
1.2 nohup 作用
nohup命令对进程做了三件事。

阻止SIGHUP信号发到这个进程。
关闭标准输入。该进程不再能够接收任何输入,即使运行在前台。
重定向标准输出和标准错误到文件nohup.out。
也就是说,nohup命令实际上将子进程与它所在的 session 分离了。所以当shell窗口关闭时候,nohup 命令所在的进程也不会被结束。

0x02 简述
如果忘记使用了 nohup,该如何补救?具体操作如下:

2.1 操作序列
具体操作序列如下:

对于正在运行的进程,我们可以使用 ”CTRL+ z“ 来将当前进程挂起到后台暂停运行;
这时候进程已经进入后台暂停,我们使用 “jobs” 找到之前暂停的进程,每一个后台任务具有一个 jobnumber(任务的序列号,非PID)。
使用 “bg jobnumber” 让该进程进入后台运行;
再次使用 "jobs"查看进程状态,此时进程已经进入running 状态;
使用disown命令 “disown -h %jobnumber” 进行处理,这样该进程就会起到了 nohup 的同样作用;此时大功告成。
如果想继续查看,可以使用 ps 命令来查看进程状态;
可以使用 “fg” 把后台任务转成前台任务运行,此时可以对该进程进行操作,比如结束;
2.2 样例
我们以运行一个redis为例给出具体操作序列,具体如下图:

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    mylinux $ jobs
    [1]+ Running redis-server &
    mylinux $ disown -h %1
    mylinux $ ps -elf| grep redis
    501 1987 521 4006 0 31 0 4289624 1932 - T 0 ttys001 0:00.01 redis-server *:6 9:49上午
    mylinux $ fg
    redis-server
    ^C1987:signal-handler (1616291836) Received SIGINT scheduling shutdown…
    1987:M 21 Mar 09:57:16.634 # User requested shutdown…
    1987:M 21 Mar 09:57:16.634 * Saving the final RDB snapshot before exiting.
    1987:M 21 Mar 09:57:16.641 * DB saved on disk
    1987:M 21 Mar 09:57:16.641 # Redis is now ready to exit, bye bye…
    0x03 原理
    下面我们对操作命令的原理一一进行分析。

3.1 CTRL + Z
Ctrl+Z是把当前的程序挂起,暂停执行这个程序。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    这样程序就被挂起进入了后台。可以挂起好多进程到后台。

3.2 jobs
jobs命令用来查看当前有多少在后台运行。

在Linux中,启动、停止、终止以及恢复作业的这些功能统称为作业控制。作业控制中的关键命令是jobs命令,jobs命令允许查看shell当前正在处理的作业。jobs命令中输出有加号和减号,带加号的作业被当做默认作业,带减号的为下一个默认作业。

一旦当前的默认工作处理完成,则带减号的工作就会自动成为新的默认工作,换句话说,不管此时有多少正在运行的工作,任何时间都会有且仅有一个带加号的工作和一个带减号的工作。

我们可以看到,此时 redis-server 就在后台运行,[1] 表示进程编号为 1。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    3.3 bg
    bg命令能够将在后台暂停的命令,变为在后台进行继续执行。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    使用了bg之后,可以看到输出 redis-server 之后带了一个 &,表示已经后台运行。

我们也可以再次使用 jobs 查看进程状态。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    mylinux $ jobs
    [1]+ Running redis-server &
    3.4 disown
    disown 命令 可以将指定任务从"后台任务"列表(jobs命令的返回结果)之中移除。一个"后台任务"只要不在这个列表之中,session 就肯定不会向它发出SIGHUP信号。这样就达到了 nohup 相同的作用。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    mylinux $ jobs
    [1]+ Running redis-server &
    mylinux $ disown -h %1
    3.5 ps
    当使用过 disown 之后,会将把目标作业从作业列表中移除,我们将不能再使用jobs来查看它,但是依然能够用ps -ef查找到它。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    mylinux $ jobs
    [1]+ Running redis-server &
    mylinux $ disown -h %1
    mylinux $ ps -elf| grep redis
    501 1987 521 4006 0 31 0 4289624 1932 - T 0 ttys001 0:00.01 redis-server *:6 9:49上午
    3.6 fg
    fg 命令能够将在后台运行的命令调至前台进行运行,如果后台运行的任务数量比较多,可以通过选择jobnumber(任务的序列号,非PID)来进行选择。

另外关于当前任务,如果后台运行的任务号有2个时候,当1号任务执行完毕之后,2号任务此时就为当前任务,那么使用fg、bg等命令不加上job number的时候,默认为变动的都是当前任务。

mylinux $ redis-server

  • The server is now ready to accept connections on port 6379
    ^Z
    [1]+ Stopped redis-server
    mylinux $ jobs
    [1]+ Stopped redis-server
    mylinux $ bg 1
    [1]+ redis-server &
    mylinux $ jobs
    [1]+ Running redis-server &
    mylinux $ disown -h %1
    mylinux $ ps -elf| grep redis
    501 1987 521 4006 0 31 0 4289624 1932 - T 0 ttys001 0:00.01 redis-server *:6 9:49上午
    mylinux $ fg
    redis-server

机票管理系统(源码+文档)相关推荐

  1. SSM+Maven电费管理系统源码+文档

    https://download.csdn.net/download/bruce_suxin/10855402

  2. 基于SSM框架+MySQL的超市订单管理系统【源码+文档+PPT】

    目录 1.系统需求分析 1.1 系统功能分析 1.2 系统功能需求 1.3 系统性能需求 2.数据库设计 2.1 数据库需求分析 3.数据库物理结构设计 4.各功能模块的设计与实现 4.1 开发框架 ...

  3. 计算机毕业设计net综合型体育场馆管理系统(系统+数据库+源码+文档)

    计算机毕业设计net综合型体育场馆管理系统(系统+数据库+源码+文档) net综合型体育场馆管理系统计算机毕业设计 最新计算机专业原创开发毕业设计参考选题都有源码+数据库是近期作品 [1] ssm基于 ...

  4. 基于SSM的物料管理系统(源码+文档+数据库)

    目录 摘要 一.需求分析 二.文档目录 三.功能性需求分析 四.非功能性需求分析 五.项目数据库设计 六.主要功能模块实现 6.1 登录板块 6.1.1 后台登录核心验证代码 6.1.2 前台登录跳转 ...

  5. 【毕业设计】基于ssm的演唱会订票管理系统,订票管理系统,网上演唱会票务系统,票务管理系统,附源码+文档+PPT

    1.项目介绍 基于ssm的演唱会订票管理系统,订票管理系统,网上演唱会票务系统,票务管理系统. 系统中的核心用户是系统管理员,管理员登录后,主要功能有管理员信息管理.网站用户管理.新闻公告信息管理.演 ...

  6. 计算机毕业设计net中医康养会员服务信息管理平台(系统+数据库+源码+文档)

    计算机毕业设计net中医康养会员服务信息管理平台(系统+数据库+源码+文档) net中医康养会员服务信息管理平台计算机毕业设计 最新计算机专业原创开发毕业设计参考选题都有源码+数据库是近期作品 [1] ...

  7. java mysql基于SSM宠物寄养中心系统源码+文档

    活动地址:毕业季·进击的技术er 博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 java mysql基于SSM宠物寄养中心系统源 ...

  8. 基于Android+servlet的宠物商店【源码+文档+ppt】

    目录 1.文档目录 1.课题研究目的 2.开发技术 2.1 Android技术 2.2 servlet 3.需求分析 3.1 系统模型 3.2 系统用例图 3.3 顶层数据流图 3.4 零层数据流图 ...

  9. SpringBoot网上书城的设计与实现源码+文档

     博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌ 项目名称 SSM框架特产销售网站设计与开发源码 视频效果 SpringBoot网上书城的设 ...

最新文章

  1. 【DeepLearning】Exercise:Sparse Autoencoder
  2. windows常见的运行命令以及各快捷键组合
  3. 接口本地正常服务器报500_运维该如何解决服务器底层维护难题?
  4. 关于linux中的 秘钥认证 ,最清晰解读
  5. Java集合—TreeMap底层原理
  6. 手写自己的MyBatis框架-V2.0参数处理
  7. 数组指针 和 指针数组
  8. checkA.php,php window平台模拟checkdnsrr函数检测_php
  9. Java图形组件 OpenSwing
  10. Twitter数据抓取的方法(二)
  11. CNode社区——React实现
  12. 华中科技大学计算机学院离散数学2,华中科技大学计算机学院2015离散数学二考试点评.pdf...
  13. 常用的台湾繁体字字体(轉)
  14. project哪个版本好用
  15. 4点策略教你如何做好社群营销
  16. 长沙理工大学本科毕业论文答辩和论文选题PPT模板
  17. Python爬虫响应码为404错误
  18. 什么是GIS,GIS能干什么
  19. 请简述python数据分析流程_简单案例讲解Python数据分析的基本步骤
  20. 05.数据的深度分析(数据挖掘、机器学习)--《数据科学概论》

热门文章

  1. 电脑怎么改图片格式?图片转格式怎么转?
  2. 煮茶论互联网五大工种,究竟哪个更适合可爱的女孩子呢
  3. 八种常见的语音标注方法 | 语音标注
  4. 网络结构——BatchNorm
  5. pands 画图 调整大小_如何将视频制作gif动画图片-好哈产品中心-办公软件下载
  6. 人工智能和深度学习的发展趋势
  7. VR全景拍摄拼接不能忽略的细节小技巧
  8. Linux如何走出桌面困境?
  9. win32com操作word 第三集:Range精讲(一)
  10. 袜子生产工厂,想做袜子礼盒该怎么做?