让命令在后台执行的几种方法

QuibblerQuibbler 2020-08-17 约 3 分钟 1876 次阅读

让命令在后台执行的几种方法

Linux终端命令行输入命令执行,但是关闭终端,正在执行的命令也会被终止。很头疼,因为SSH远程到服务器上,对于一些需要长期运行的服务总不能一直连着终端“保活”吧。一旦断开怎么让命令继续执行呢?

对后台的网易云API服务(端口3000)进行升级,记录一下将服务放到后台执行。


1、&

&在输入的命令行结尾来命令后台继续运行。

1.1、&用法

在执行的命令行结尾加上&

ping quibbler.cn &

上面的命令就会一直执行,不过输出一直占用终端屏幕也不友好。可以将输出导至文件或者/dev/null“黑洞”

ping quibbler.cn > /dev/null &

1.2、查看后台执行的任务

那么怎么查看后台正在运行的任务呢?输入jobs命令查看。jobs命令以后再详细了解。

jobs

会显示后台执行的任务:

1.3、缺点

虽然能在后台运行,但是终端关闭的话,执行命令的进程还是会终止。

2、nohup

nohup是no hang up的缩写,意思是“没有挂断”。

2.1、使用

非常推荐使用这个,好用靠谱!及时远程终端断开,账号退出,命令启动的服务仍然可以在服务器上执行。

nohup node ./app.js

将输出的日志保留或者输出到“黑洞”丢弃

nohup node ./app.js > /dev/null

2.2、查看后台执行的服务

不同于jobs,任务已经真正挂起到后台脱离终端。查看进程即可查看到后台执行的任务

ps -aux | grep node

相关博客:

        Linux让命令在后台执行

        LINUX任务(jobs)详解

        Linux的bg和fg命令

        ssh命令行下多任务前后台切换

        Linux nohup实现后台运行程序及查看

        

相关推荐

精选
获取系统SDK版本、判断手机ROM
Code

获取系统SDK版本、判断手机ROM

Build获取系统SDK版本Android中部分API的使用,需要在特定的SDK版本之后才能使用,因此在兼容老版本SDK的时候,经常需要判断API的版本。各种Android版本的对应关系参考《Android各版本对应的SDK版本》判断手机ROM有时候需要判断手机系统的ROM,检测ROM是MIUI、EMUI还是Flyme,可以使用getprop命令,去系统build.prop文件(关于build.p

3.7k
精选
AndroidStudio中各种中文乱码问题
Code

AndroidStudio中各种中文乱码问题

AndroidStudio中各种中文乱码问题1、编译Java错误信息乱码在出现这个Annotation processors must be explicitly declared now...问题的时候,正好也发现AndroidStudio Build Output错误信息都乱码。经常遇到各种问题,习惯了,现在遇到的问题,都是以后的答案。 1.1、修改项目build.gradle(无效)在整个p

2.4k
AndroidStudio 报错:has no declaration in the base values folder
Code

AndroidStudio 报错:has no declaration in the base values folder

在资源文件中正常定义的值,也能编译运行。昨天还正常,今天一打开就报错。应该又是AndroidStudio自身的Bug了。原因众说纷纭,参考Stack Overflow 一篇类似的讨论。解决:File => Invalidate Caches / Restart => Invalidate and Restart.

4.4k