如何在终端使用后台运行模式启动一个Linux应用程序

如何在终端使用后台运行模式启动一个Linux应用程序

Linux终端窗口

这是一个篇幅不长但是十分有用的教程,可以帮助你在终端启动一个Linux应用程序,并且使终端窗口不会丢失焦点。

我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境。

如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端。当然你也可以使用超级键(Windows键)打开Dash,搜索“TERM”,然后点击“Term”图标来打开终端窗口。

对于其他的桌面环境来说,例如XFCE、KDE、LXDE、Cinnamon以及MATE,你可以在菜单中找到终端。有些环境会在停靠栏或者面板上面包含终端图标。

通常情况下,你可以在终端里面直接输入应用程序名来启动一个应用程序。比如说,你可以通过输入“firefox”来启动Firefox。

在终端启动应用程序的好处是,你可以包含一些额外的参数。

例如,你可以通过下列命令来打开一个Firefox浏览窗口,然后利用默认的搜索引擎搜索相关信息:


  1. firefox -search "linux.cn"

你可能会注意到,如果你启动Firefox,程序打开以后,回到了终端窗口控制,这就意味着你可以继续在终端进行工作。

通常情况下,如果你在终端启动了应用程序,控制会切换到新启动的应用程序,只有程序被关闭以后才会重新切换到终端控制。这是因为你在前台启动了这个程序。

如果要在Linux终端打开应用程序并且返回终端控制,那么你需要将应用程序启动为后台进程。

和下面所列的命令一样,我们可以通过增加一个(&)符号,将应用程序在后台启动。


  1. libreoffice &

译者注:如果需要加参数的话,记得把&符号放在最后。

译者注:一般情况下,关闭终端时,在这个终端启动的后台程序也会被终止,要使终端关闭以后,后台程序依然保持执行可以使用下列命令

nohup command [arg...] &

如果应用程序目录没有安装在PATH变量包含的目录里面的话,我们就没有办法直接通过应用程序名来启动程序,必须输入应用程序的整个路径来启动它。


  1. /path/to/yourprogram &

如果你不确定程序输入哪个Linux目录结构的话,可以使用find或者location命令来定位它。

可以输入下列符号来找到一个文件:


  1. find /path/to/start/from -name programname

例如,你可以输入下列命令来找到Firefox:


  1. find / -name firefox

命令运行的结果会嗖的一下输出一大堆,别担心,你也可以通过less或者more来进行分页查看。


  1. find / -name firefox | more
  2.  
  3. find / -name firefox | less

当find命令查找到没有权限访问的文件夹时,会报出一条拒绝访问错误,

你可以通过sudo命令来提示权限。当然,如果你没有安装sudo的话,就只能切换到一个拥有权限的用户了。


  1. sudo find / -name firefox | more

如果你知道你要查找的文件在你的当前目录结构中,那么你可以使用点来代替斜杠:


  1. sudo find . -name firefox | more

你可能需要sudo来提升权限,也可能根本就不需要,如果这个文件在你的主目录里面,那么就不需要使用sudo。

有些应用程序则必须要提升权限才能运行,否则你就会得到一大堆拒绝访问错误,除非你使用一个具有权限的用户或者使用sudo提升权限。

这里有个小窍门。如果你运行了一个程序,但是它需要提升权限来操作,输入下面命令试试:


  1. sudo !!

----------------------------------------------------------------------------------------------------------------------------

原文发布时间:2015-03-02
本文来自云栖合作伙伴“linux中国”
时间: 2024-09-20 08:59:08

如何在终端使用后台运行模式启动一个Linux应用程序的相关文章

在Linux终端中使用后台运行模式启动程序的方法

  我们有很多可以在Linux系统中打开一个终端窗口的方法,这取决于你的选择以及你的桌面环境. 如果是使用Ubuntu的话,你可以利用CTRL+ALT+T组合键打开终端.当然你也可以使用超级键(Windows键)打开Dash,搜索"TERM",然后点击"Term"图标来打开终端窗口. 对于其他的桌面环境来说,例如XFCE.KDE.LXDE.Cinnamon以及MATE,你可以在菜单中找到终端.有些环境会在停靠栏或者面板上面包含终端图标. 通常情况下,你可以在终端里面

一个应用程序通过ShellExecute启动一个自动升级程序,在不关闭自动升级程序的窗体时,始终显示在最前面不隐藏到后面,有办法做到吗

问题描述 应用场景:有一个主程序App1,有时候要自动升级,自动升级是另外一个程序App2,当App1监测到自动升级信息后通过ShellExecute启动自动升级程序App2,有办法让用户不关闭App2的窗体,它能始终显示在最前面不隐藏到后面吗?我通过Process类得到了自动升级程序的Process信息,里面有handle,mainwindowshandle等一些属性和方法,对这个类也不是太熟,还是不通过Process用其他方法做到? 解决方案 解决方案二:[DllImport("User32

【OS】Linux命令如何放到后台运行

[OS]Linux命令如何放到后台运行 linux命令后台运行    有两种方式:    1. command & : 后台运行,你关掉终端会停止运行    2. nohup command & : 后台运行,你关掉终端也会继续运行     一. 简介      Linux/Unix 区别于微软平台最大的优点就是真正的多用户,多任务.因此在任务管理上也有别具特色的管理思想. 我们知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后

Python脚本后台运行的几种方式

 这篇文章主要介绍了Python脚本后台运行的几种方式,linux下后台运行.通过upstart方式实现.通过bash脚本实现.通过screen.tmux等方式实现,需要的朋友可以参考下     一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: 代码如下: python test1.py & 现在脚本正常运行,通过ps能看到进程号,此时直接关闭ssh终端(不是用exit命令,是直接通过putty的关闭按

Python脚本后台运行的几种方式_基础知识

一个用python写的监控脚本test1.py,用while True方式一直运行,在ssh远程(使用putty终端)时通过以下命令启动脚本: 复制代码 代码如下: python test1.py & 现在脚本正常运行,通过ps能看到进程号,此时直接关闭ssh终端(不是用exit命令,是直接通过putty的关闭按钮执行的), 再次登录后发现进程已经退出了. 通过后台启动的方式该问题已经解决,这里总结下,也方便我以后查阅. linux 下后台运行 通过fork实现 linux环境下,在c中守护进程

myeclipse debug模式启动项目出错

问题描述 使用myeclipse版本6.0jdk版本1.5tomcat版本6.0使用cmd启动tomcat没有问题使用myeclipse运行模式气筒tomcat也没有问题使用myeclipsedebug运行模式启动tomcat则出现以下问题FATALERRORinnativemethod:JDWPNotransportsinitialized,jvmtiError=JVMTI_ERROR_INTERNAL(113)ERROR:transporterror202:gethostbyname:unk

后台运行的问题

问题描述 我想让自己写的程序后台运行要怎么写?这个程序有界面的,就是想在他启动的时候不会变成活动窗口不影响其他程序不要那种最小化显示或者隐藏启动的方法 解决方案 解决方案二:你指的应该是编写服务端程序吧?解决方案三:你在坚决方案里建立一个空项目,并且设定为启动项目.在该项目里添加一个.cs文件,里面定义启动用的类和main方法.解决方案四:解决方案......解决方案五:要有界面又不要最小化没理解解决方案六:引用楼主的回复: 我想让自己写的程序后台运行要怎么写?这个程序有界面的,就是想在他启动的

mongodb设置后台运行的方法_MongoDB

默认的情况下,关闭shell,mongodb就停止运行了. 如果想在后台运行,启动时只需添加 --fork函数即可. 可以在日志路径后面添加--logappend,防止日志被删除. 复制代码 代码如下: bin/mongodb  --fork --dbpath=//  --logpath=//  --logappend 在后台运行,如果想要关闭它的话,需要给他发送shutdownServer() 1.普通命令: 复制代码 代码如下: $ ./mongod > use admin > db.sh

ios-新手IOS后台运行实现问题

问题描述 新手IOS后台运行实现问题 要想实现程序可以在后台运行,而且10分钟后不被kill掉,要怎么做呢? 网络连接使用voip可以实现长连接,查了下长连接是一直与服务器保持通信, 可以使你处于活跃状态,但是长连接建立以后,第一次可以发送数据到服务端,第二次要怎么做呢? 毕竟长连接是连接-发送数据-心跳-发送数据-心跳....断开这样的吧,第二次获取数据的话是再次请求吗?还有是客户端向服务端发送心跳,还是服务向客户发送心跳呢?毕竟这时客户端已经进入了后台运行啊! 还有就是app进入后台可以定义