Ubuntu中如何使得程序在后台运行

一、前言

在Ubuntu中有的程序启动需要执行改程序./bin目录下的文件,并且启动之后这个shell就不能使用和关闭了,非常的麻烦,因此就有了相应的命令来解决这个问题。

二、nohup和&

一般在执行shell命令的时候我们在命令的后面加上一个‘&’,这样就可以使得该程序在后台运行,但是当程序运行起来之后依旧会再次在shell中输出打印信息,shell依旧被占用,关闭shell则程序退出;这个时候我们可以使用ctrl+z命令,使得这个信息消失,可以做别的事情,但是关闭shell的时候程序依旧会退出,因此这些办法都不能解决问题。

      因此我们需要使用nohup命令来解决问题。

nohup
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
退出状态出口值:126 可以查找但不能调用 Command 参数指定的命令。   127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。   否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。

      仅仅使用nohup命令能保证程序忽略挂起信号一直运行,但是输出还是会在终端和默认的当前目录的 nohup.out输出,关闭终端的时候不会结束程序,这样不是很优雅,最好的方式是在nohup后面加上&,这样就是最佳的执行方式了。

nohup和&的区别
nohup : nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响运行,注意了nohup没有后台运行的意思;&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出。
结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行

  nohup command > myout.file 2>&1 &

在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。

三、Linux中的一些系统变量的含义

1 $# ----传递给程序的总的参数数目  
2 $? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
3 $* ----传递给程序的所有参数组成的字符串,以("$1 $2...")的形式保存所有输入的命令行参数  
4 $n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数。。,$0 ----当前程序的名称
5 $@----以("$1""$2"...)的形式保存所有输入的命令行参数
6 $$ ----本程序的(进程ID号)PID   
7 $! ----上一个命令的PID
8 $0 :保存程序名

#!/bin/sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

转载于:https://www.cnblogs.com/zyrblog/p/11044285.html

Ubuntu中如何使得程序在后台运行相关推荐

  1. 后台启动_Windows10中如何阻止程序在后台运行

    Windows用的越久速度越慢有多种原因,其中一个原因是安装了很多开机启动并驻留在内存中的程序.用户可以通过禁用这些后台程序来改善计算机运行的速度.有很多方法可以做到这一点,最简单的就是下载一个第三方 ...

  2. 【破事氵】在Linux环境中让程序在后台运行

    前言 首先,相信大家都或多或少了解过linux和云服务器.linux作为一个开源的操作系统内核,在开发者人群和服务器领域中有着很高的使用率.而现在在以阿里云为代表的云服务器商中,可以以很低的价格买入入 ...

  3. 让程序常驻后台运行的原理和方法

    为什么80%的码农都做不了架构师?>>>    linux中进程组织结构为session包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程. 一个session可能会有 ...

  4. 【iOS系列】-程序开启后台运行

    [iOS系列]-程序开启后台运行 iOS程序是伪后台的运行,可是有时候我们需要让其在后台也要进行一些操作,我们可以让其伪装成音乐的APP,这样就可以让程序后台进行相关操作了,具体做法如下: 1:在Ap ...

  5. Linux如何让程序在后台运行

    如果要运行程序,在命令提示行下输入程序名后回车,程序被执行,然后等待程序运行完成,在程序运行的过程中,也可以用Ctrl+c中止它. 在实际开发中,我们需要让程序在后台运行,没有界面,没有用户输入数据. ...

  6. Linux中如何让命令在后台运行

    1.在下达的命令后面加上&,就可以使该命令在后台进行工作,这样做最大的好处就是不怕被ctrl+c这个中断指令所中断. 2. 那大家可能又要问了,在后台执行的程序怎么使它恢复到前台来运行呢?很简 ...

  7. Ubuntu下C语言程序编写与运行

    Ubuntu下C语言程序编写与运行 安装Ubuntu Ubuntu系统下C程序编写与运行 VC6.0下编译C程序 在Ubuntu下用Makefile方式编程主程序 安装Ubuntu 在Windows环 ...

  8. 关于ios程序的后台运行

    文一  我从苹果文档中得知,一般的应用在进入后台的时候可以获取一定时间来运行相关任务,也就是说可以在后台运行一小段时间.  还有三种类型的可以运行在后以,  1.音乐  2.location  3.v ...

  9. java语言写常驻服务_让程序常驻后台运行的原理和方法

    linux中进程组织结构为session包含一个前台进程组及一个或多个后台进程组,一个进程组包含多个进程. 一个session可能会有一个session首进程,而一个session首进程可能会有一个控 ...

最新文章

  1. pytorch学习笔记(九):PyTorch结构介绍
  2. 用户数年增长 300%,BitMax如何把握数字资产时代机遇?
  3. 拦截导弹 (加了神奇的位运算)
  4. 横波与纵波的本质区别是什么?——偏振
  5. 通过端到端的数据侦测提升QoS
  6. Mifare Ultra Light 非接触式IC卡发卡总结
  7. 【在路上5】实时计算助力派件管控
  8. 超赞 | 计算机视觉联盟全新Logo!近期精华回顾!
  9. 资源放送丨《Oracle存储过程中的性能瓶颈点》PPT视频
  10. [独家放送]Unity2019更新规划速览,将有官方的可视化编程!
  11. sas rename重命名_如何使用sp_rename命令在SQL Server中重命名表
  12. Mac电脑上怎么添加密码提示?操作教程来啦!
  13. 【Linux基础】在 Linux 上安装软件的 3 种方法
  14. Python数据库编程之pymysql详解
  15. 互联网服务器使用ipset 和iptables禁止国外IP访问
  16. 需求与商业模式分析-3-设计
  17. Rasa课程、Rasa培训、Rasa面试系列 金融银行案例Bot Step By Step学习
  18. mysql safe file priv_mysql --secure-file-priv问题解决方案
  19. 看守所里的信息化故事:刘所家的新地毯
  20. 抽象工厂和工厂方法模式

热门文章

  1. postgresql创建只读账号
  2. JavaScript 基础,登录验证
  3. 泛函编程(19)-泛函库设计-Parallelism In Action
  4. 雄关漫步真如铁 而今迈步从头越
  5. 在ubuntu 下 利用svn命令导出 两个版本之间更改的文件
  6. 基于Windows 2008 R2 Core的SQL Server 2008 R2 Cluster部署(Step by Step)
  7. 利用Cache,asp.net 简单实现定时执行任务
  8. 在HYPER-V中利用差异磁盘和SYSPREP技术安装多个WINDOWS 2008
  9. html frame 菜单切换,官方底部导航如何通过frame0.html的JS控制切换
  10. vscode拼写错误提醒消失