Linux:使用nohup让进程在后台可靠运行

学习之余我最大的乐趣是找一部不错的电影慢慢品味,这也是我缓解压力的最好方式之一,由于我常去的字幕组网站需要签到才可以下载字幕,像这种娱乐网站谁有时间天天记得去签到呢,but作为一个准程序猿应该有更好的办法。果然我在github上逛了逛,便发现的一个不错的签到脚本,看来很多人都着和我一样的刚需呀,这里附上地址

一动手很多问题便接踵而至,我打算把这个脚本运行在我的腾讯云服务器上面,并且定一个时间,让它每天在固定的时间run。可是我用的ssh 登录的远程Linux 服务器,如果直接按照那脚步的API执行,有一个致命的问题,我一旦在ssh终端执行了exit,所有子线程都会终止,脚本程序也是一样。

去google了一通后,发现有几个不错的方法可以解决这个问题,这里我只介绍我使用的那个方法。

解决方法:

nohup

首先看看nohup的帮助信息

NOHUP(1)                        User Commands                        NOHUP(1)

NAME
       nohup - run a command immune to hangups, with output to a non-tty

SYNOPSIS
       nohup COMMAND [ARG]...
       nohup OPTION

DESCRIPTION
       Run COMMAND, ignoring hangup signals.

       --help display this help and exit

       --version
              output version information and exit

ps:英语不好的同学也要锻炼着多读英语文档,我以前英语差的可怜,高考就是败在英语上面。后来为了能看懂英语文档,同时应考大学英语四级,我花了一年时间啃英语,每天背两小时单词,看语法,做模拟试卷,到考试之前我做了大概50套题目,把近几年的考试题一集各种预测题都做了一遍。功夫不负有心人,昨天(2016年8月19日)我查四级成绩,过了可以报考六级的分数线,下半年我准备继续报英语六级。

回到正题:nohup 的使用只需在要处理的命令前加上 nohup 即可,一般在结尾加上"&"来将命令同时放入后台运行。

示例:

nohup ./qian-ni-mei-server.sh "larsenlouis" "12345678" "0100" &

查看后台进程:

ubuntu@VM-10-71-ubuntu:~$ ps -ef | grep "qian*"
root 8017 1 49 Aug19 ? 05:09:17 /bin/bash ./qian-ni-mei-s erver.sh username passward 2206
root 8401 1 49 Aug19 ? 05:04:06 /bin/bash ./qian-ni-mei-s erver.sh username passward 2206

我在终端执行exit后再次使用ssh登录,查看后台进程,输出和上面的一样。可见此方法可行。

 
原文地址:https://www.cnblogs.com/billyu/p/5789611.html