【Linux】ssh下调整运行程序前后台切换

原文:https://my.oschina.net/huxuanhui/blog/13844

我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务。而不能让程序在前台后台之间切换。而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务。

假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号):

[1]+ Stopped /root/bin/rsync.sh然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)#bg 1
[1]+ /root/bin/rsync.sh &
用 jobs 命令查看正在运行的任务:#jobs
[1]+ Running /root/bin/rsync.sh &
如果想把它调回到前台运行,可以用#fg 1
/root/bin/rsync.sh
这样,你在控制台上就只能等待这个任务完成了。

fg、bg、jobs、&、ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的
一。& 最经常被用到
这个用在一个命令的最后,可以把这个命令放到后台执行
二。ctrl + z
可以将一个正在前台执行的命令放到后台,并且暂停
三。jobs
查看当前有多少在后台运行的命令
四。fg
将后台中的命令调至前台继续运行
如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)
五。bg
将一个在后台暂停的命令,变成继续执行
如果后台中有多个命令,可以用bg %jobnumber将选中的命令调出,%jobnumber是通过jobs命令查到的后台正在执行的命令的序号(不是pid)

原文地址:https://www.cnblogs.com/acm-icpcer/p/11221883.html

时间: 2024-10-11 20:45:22

【Linux】ssh下调整运行程序前后台切换的相关文章

在linux环境下编译运行OpenCV程序的两种方法

原来以为在Ubuntu下安装好了OpenCV之后,自己写个简单的程序应该很容易吧,但是呢,就是为了编译一个简单的显示图片的程序我都快被弄崩溃了. 在谷歌和上StackOverFlow查看相关问题解答之后,我下面就介绍Command Line和CMake两种方式. 首先我先粘上我测试的代码吧,文件名为Test.c 1 #include <highgui.h> 2 3 int main(int argc,char ** argv) { 4 5 IplImage* img = cvLoadImage

Windows 8 应用程序前后台切换事件监听

在一些情况下,我们需要监听应用程序切换到后台或者从后台切换至前台的事件,从而进行相关处理操作.支付宝应用锁屏(IOS,Android平台)的处理中就需要监听此事件,在用户将应用切换至后台一段时间后再切换至前台的情况下就需要弹出锁屏页面. 下图给出Windows 应用商店应用的生命周期图,应用前后台切换就是在运行和挂起直接进行切换,关于生命周期的详细介绍可以参阅官方文档:http://msdn.microsoft.com/zh-cn/library/windows/apps/hh464925.as

Android实现程序前后台切换效果

转载自:http://www.cnblogs.com/hanyonglu/archive/2012/04/15/2450551.html 本文演示如何在Android中实现程序前后台切换效果. 在介绍程序实现之前,我们先看下Android中Activities和Task的基础知识. 我们都知道,一个Activity 可以启动另一个Activity,即使这个Activity是定义在别一个应用程序里的,比如说,想要给用户展示一个地图的信息,现在已经有一个Activity可以做这件事情,那么现在你的A

关于linux系统下CRONTAB运行python脚本不生效

关于linux系统下CRONTAB运行python脚本不生效 运维中难免会在定时任务中同时使用shell和python脚本,shell脚本不生效大部分为环境变量的问题,在脚本前增加环境变量基本能解决,如加上 source /etc/profile. 最近遇到python脚本不能执行的情况,状态描述,如目录/home/script/SH下有脚本Qdd.py和download.sh,手动是可以执行的是生效的,如下: python3 /home/script/SH/Qdd.py 放到定时任务cront

Java初学者:java是如何在命令行下编译运行程序的

我们上文书说到,我们首先安装Java,然后设置Java环境,然后编译运行了一个简单的Java程序,在命令行模式下显示了一个“Hello baby”.那么,为什么呢?发生了什么呢? 首先,下载安装Java就不用问为什么了对吧?所谓巧妇难为无米之炊,没有Java却想用,这不可能的. 其次,为什么我们要那样设置Java的运行环境呢? 因为,目前为止,我只是想在命令行下编译运行java程序,这样一来,你就需要让命令行模式识别java的命令.而命令行下能自动识别的命令,必须我们手动的把命令的路径添加进去.

Ubantu Linux 环境下编译c++程序

先在文件中新建一个a.cpp文件,在里面编写程序, 然后打开终端输入下面命令即可; $ g++ a.cpp -o b ///编译a.cpp 然后把编译之后的.exe文件存入b中 $ ./b ///执行当前目录下的b,就是运行程序的意思; 这是简单的编译运行,接着就是调试了(个人建议直接用输出对应变量的方法比较好),下面记录一些基本命令 $ g++ a.cpp -o b -g /// $ gdb /// $ file b ///对应文件b $ l ///查看b中的内容, l(list); $ b

Linux系统下如何运行.sh文件

在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh): 1.在任何路径下,输入该文件的绝对路径/root/datelog.sh就可执行该文件(当然要在权限允许情况下) 2.cd到datelog.sh文件的目录下,然后执行./datelog.sh 第二种(这种办法不需要文件具备可执行的权限也可运行): 1.在该文件路径下sh加上文件名字即可,sh da

linux下查找运行程序中的死循环

早上到公司后发现服务器的CPU占用率竟然达到百分之百了. 猜测是触发了问题代码进入死循环了. 用PS命令查看了一下情况. 发现罪魁祸首是某个游戏服务器程序. CPU占用率超高. 用 top -H -p PID 查看问题到底出现在那个线程, 记录下threadID. 用 gdb ProcessName PID 附近到目标进程. 用 info threads 列出线程状态. 用 thread Num. 查看问题线程信息 用 bt 查看堆栈调用顺利找到问题代码位置. 最后记得 gdb dettach

linux环境下编译运行OpenCV程序的两种方法

一.命令行Command Line 1 g++ opencv_test.cpp -o opencv_test `pkg-config --cflags --libs opencv` 2 ./opencv_test test.jpg 备注:pkg-config选项--cflags 它是用来指定程序在编译时所需要头文件所在的目录--libs 则是指定程序在链接时所需要的动态链接库的目录 二.CMake工具编译 在程序同目录下创建CMakeLists.txt 1 #文件地址(下载源码安装包中):/op