导航:首页 > 编程系统 > linuxnohup停止

linuxnohup停止

发布时间:2023-05-03 07:29:13

1. linux nohup如何停止

如果有关闭的脚本就执行脚本
否则直接kill进程吧

2. 怎么关闭通过nohup运行的后台程序

很多朋友可能在实际的linux服务器管理工作中,经常会为一些长时间运行的任务而头疼,当有事离开我们关掉了连接终端断开SSH后,刚才运行着的程序也自动被中断。下面就介绍下如何让我们的程序在断开SSH后继续在后行运行的方法。 一、使用nohup让程序在后台继续运行 常用命令:nohup ./home/nginx.sh & * 如果运行成功刚默认会将标准输出重定向到当前目录的nohup.out文件中,查看此文件,可以了解运行的进度; 二、使用screen让程序在后台执行 screen是一个可以在多个进程之间多路利用一个物理终端的窗口管理器。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。 1、安装screen yum install screen 2、创建screen会话 3、暂时离开,保留screen会话中的任务或程序 当需要临时离开时(会话中的程序不会关闭,仍在运行)可以用快捷键Ctrl+a d(即按住Ctrl,依次再按a,d) 4、恢复screen会话 当回来时可以再执行执行:screen -r wordname 即可恢复到离开前创建的lnmp会话的工作界面。 如果忘记或者刚开始没有指定会话名,执行screen -ls列出当前的会话列表; [root@LF ~]# screen -ls There are screens on: 12738.wordname (Detached) 12839.hte1 (Detached) 2 Sockets in /var/run/screen/S-root 12738.wordname即为即才screen创建的会话,恢复回话:screen -r 12738 5、关闭screen会话 执行:exit 6、远程演示 首先在服务器上执行screen -S test创建一个screen的会话,观众可以链接到 远程服务器执行screen -x test 这样观众的屏幕上就会出现和演示者同步的内容。 7、常用的快捷键 Ctrl + a c 在当前screen会话中创建窗口 Ctrl + a w 窗口列表 Ctrl + a n 下一个窗口 Ctrl + a p 上一个窗口 Ctrl + a 0-9 在第0个窗口和第9个窗口之间切换 摘取于:/manage/screen.html

3. linux后台自动执行命令nohup与日志查看

在linux上执行脚孙含瞎本,当退出页面或电脑锁屏后,脚本就停止执行了。对需要长时间运行的脚本非常不友好。

nohup(no hang up)则空老尺:可以让程序不挂断执行。
& :可以让程序在后台执行。

“> nohup.log”: 表示将日志输出到nohup.log文件上。
2>&1:表示将正确日志、错误日志都输出到正确日志指定的文件(nohup.log文件)上。

4. linux后台执行命令:&和nohup的用法,确实很实用

当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。

& :当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行。例如:sh test.sh &

适合在后台运行的命令有f i n d、费时的排序及一些s h e l l脚本。在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作。如果放在后台运行的作业会产生大量的输出,最好使用下面的方法把它的输出重定向到某个文件中:

这样,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中罩核。

PS:当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进物猜掘程,或杀死它。(ps -ef | grep 进程号 或者 kill -9 进程号)

nohup:使用&命令后,作业被提交到后台运行,当前控制台兆陪没有被占用,但是一但把当前控制台关掉(退出帐户时),作业就会停止运行。nohup命令可以在你退出帐户之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。该命令的一般形式为:

如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:

使用了nohup之后,很多人就这样不管了,其实这样有可能在当前账户非正常退出或者结束的时候,命令还是自己结束了。所以在使用nohup命令后台运行命令之后,需要使用exit正常退出当前账户,这样才能保证命令一直在后台运行。

ctrl + z :可以将一个正在前台执行的命令放到后台,并且处于暂停状态。

Ctrl+c :终止前台命令。

jobs: 查看当前有多少在后台运行的命令。 jobs -l选项可显示所有任务的PID,jobs的状态可以是running, stopped, Terminated。但是如果任务被终止了(kill),shell 从当前的shell环境已知的列表中删除任务的进程标识。

2>&1解析:

扩展链接:如何写高效的代码,和代码优化方法

5. linux的nohup进程怎么停

因为进程就是在你打开的终端里执行的,退出终端就会退出所有在这个终端打开的进程. 比如,你在终端打开了vi 当你退出的时候,你的vi是不是也退出了.

6. linux服务器注销界面会终止程序

linux服务器注销界面会终止程序如下
这时候谈指我们可以使用后台守护线程来解决这个问题。
nohupjava-jarword.jar&nohup:不挂断的运行。即使闹或你挂断了ssh连接,程序照样运行。
&:在后台运行。按ctrl+c后推出程序运行界面,程序会在后台运行。
这样线程就启动了。
我们输入命令查看下进程是否在运行
ps-ef|grepjavaps:将程序某个时间的运行状况截液侍伍取下来
grep:查找命令
此处已成功运行。大功告成

7. linux下nohup 命令怎么kill

Unix中 nohup 命令功能就是不挂断地运行命令,同时 nohup 把程序的所有输出到放到当前目录 nohup.out 文件中,如果文件不可写,则放到 <用户主目录>/nohup.out 文件中。那么有了这个命令以后我们php就写成shell 脚本使用循环来让我们脚本一直运行下去,不管我们终端窗口是否关闭都能够让我们php 脚本一直运行下去。 马上动手写个 PHP 小程序,功能为每30秒记录时间,写入到文件 复制代码 代码如下: # vi for_ever.php #! /usr/local/php/bin/php define('ROOT', dirname(__FILE__).'/'); set_time_limit(0); while (true) { file_put_contents(ROOT.'for_ever.txt', date('Y-m-d H:i:s')."\n", FILE_APPEND); echo date('Y-m-d H:i:s'), ' OK!'; sleep(30); } ?> 保存退出,然后赋予 for_ever.php 文件可执行权限: # chmod +x for_ever.php 让它在再后台执行: # nohup /home/andy/for_ever.php.php & 记得最后加上 & 符号,这样才能够跑到后台去运行 执行上述命令后出现如下提示: [1] 5157 nohup: appending output to 'nohup.out' 所有命令执行输出信息都会放到 nohup.out 文件中 这时你可以打开 for_ever.php 同目录下的 for_ever.txt 和 nohup.out 看看效果! 好了,它会永远运行下去了,怎么结束它呢? # ps PID TTY TIME CMD 4247 pts/1 00:00:00 bash 5157 pts/1 00:00:00 for_ever.php 5265 pts/1 00:00:00 ps # kill -9 5157 找到进程号 5157 杀之,你将看到 [1]+ Killed nohup /home/andy/for_ever.php OK! ==================== 在很多项目中,或许有很多类似的后端脚本需要通过crontab定时执行。比如每10秒检查一下用户状态。脚本如下: @file: /php_scripts/scan_userstatus.php 复制代码 代码如下: #!/usr/bin/env php -q $status = has_goaway(); if ($status) { //done } ?> 通过crontab定时执行脚本scan_userstatus.php #echo “*:*/10 * * * * /php_scripts/scan_userstatus.php” 这样,每隔10秒钟,就会执行该脚本。 我们发现,在短时间内,该脚本的内存资源还没有释放完,又启用了新的脚本。也就是说:新脚本启动了,旧脚本占用的资源还没有如愿释放。如此,日积月累,浪费了很多内存资源。我们对这个脚本进行了一下改进,改进后如下: @file: /php_scripts/scan_userstatus.php 复制代码 代码如下: #/usr/bin/env php -q while (1) { $status = has_goaway(); if ($status) { //done } usleep(10000000); } ?> 这样,不需要crontab了。可以通过以下命令执行脚本,达到相同的功能效果 #chmod +x /php_scripts/scan_userstatus.php #nohup /php_scripts/scan_userstatus.php & 在这里,我们通过&将脚本放到后台运行,为了防止随着终端会话窗口关闭进程被杀,我们使用了nohup命令。那么有没有办法,不使nohup命令,也能够运行呢,就像Unin/Linux Daemon一样。接下来,就是我们要讲的守护进程函数。 什么是守护进程?一个守护进程通常补认为是一个不对终端进行控制的后台任务。它有三个很显著的特征:在后台运行,与启动他的进程脱离,无须控制终端。常用的实现方式是fork() -> setsid() -> fork() 详细如下: @file: /php_scripts/scan_userstatus.php 复制代码 代码如下: #/usr/bin/env php -q daemonize(); while (1) { $status = has_goaway(); if ($status) { //done } usleep(10000000); } function daemonize() { $pid = pcntl_fork(); if ($pid === -1 ) { return FALSE; } else if ($pid) { usleep(500); exit(); //exit parent } chdir("/"); umask(0); $sid = posix_setsid(); if (!$sid) { return FALSE; } $pid = pcntl_fork(); if ($pid === -1) { return FALSE; } else if ($pid) { usleep(500); exit(0); } if (defined('STDIN')) { fclose(STDIN); } if (defined('STDOUT')){ fclose(STDOUT); } if (defined('STDERR')) { fclose(STDERR); } } ?> 实现了守护进程函数以后,则可以建立一个常驻进程,所以只需要执行一次: #/php_scripts/scan_userstatus.php 这里较为关键的二个php函数是pcntl_fork()和posix_setsid()。fork()一个进程,则表示创建了一个运行进程的副本,副本被认为是子进程,而原始进程被认为是父进程。当fork()运行之后,则可以脱离启动他的进程与终端控制等,也意味着父进程可以自由退出。 pcntl_fork()返回值,-1表示执行失败,0表示在子进程中,而返进程ID号,则表示在父进程中。在这里,退出父进程。setsid(),它首先使新进程成为一个新会话的“领导者”,最后使该进程不再控制终端,这也是成为守护进程最关键的一步,这意味着,不会随着终端关闭而强制退出进程。对于一个不会被中断的常驻进程来说,这是很关键的一步。进行最后一次fork(),这一步不是必须的,但通常都这么做,它最大的意义是防止获得控制终端。(在直接打开一个终端设备,而且没有使用O_NOCTTY标志的情况下, 会获得控制终端). 其它事项说明: 1) chdir() 将守护进程放到总是存在的目录中,另外一个好处是,你的常驻进程不会限制你umount一个文件系统。 2)umask() 设置文件模式,创建掩码到最大的允许限度。如果一个守护进程需要创建具有可读,可写权限的文件,一个被继承的具有更严格权限的掩码会有反作用。 3)fclose(STDIN), fclose(STDOUT), fclose(STDERR) 关闭标准I/O流。注意,如果有输出(echo),则守护进程会失败。所以通常将STDIN, STDOUT, STDERR重定向某个指定文件.

8. Linux系统不停止服务,清空nohup.out文件

用途:LINUX命令用法,不挂断地运行命令。

语法:nohup Command [ Arg … ] [& ]

描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。

例子: nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台执行,并且打印过程日志到nohup.out,当然也可以将nohup.out的输出转向到其他文件,高级应用请参考扩展阅读。

如上文所述出现了超大号的文件简直是令人讨厌的事情,而且nohup.out会一直一直自己增长下去,如果你的服务器硬盘不给力的话,很容易把应用也挂掉(硬盘没空间 ,啥都玩不转),但是又不能一味的直接删。因为直接删除,可能会造成应用无法打印后续的错误日志,该问题常见于weblogic服务器,jboss服务器等这些大型中间件,这个在生产环境上要尤为注意。
可以使用以下两种方法实现: 不停止WEB服务就可以清空nohup.out的命令 。

不用担心网上所说的性能问题,通常2/3 个G的文件都是1-2秒执行完毕

以下是定义日志打印级别,除了高于级别2的告警信息记录到log文件外,其余直接不记录

可以用来指定需要重定向的标准输入或输出。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。

Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

9. 用xshell远程连接linux服务器,怎样才能不让服务停掉

用xshell远程连接linux服务器,用nohup命令来执行,才能不让服务停掉。

如:nohup test.sh &

nohup 命令

用途:不挂断地运行命令。

10. 怎么结束nohup运行的进程

用ps 查看进程号,例如 ps -ef|grep myapp

得到进程号后 kill 123

如果杀不掉 kill -9 123

另外还需要看看执行kill 的用户对不对,试试用root用户杀。如果还不行,看看进程状态是不是已经是一个僵尸了,可能操作系统也有BUG的。不行就重启了

阅读全文

与linuxnohup停止相关的资料

热点内容
微信公众号版头设计 浏览:917
jdk18读取配置文件 浏览:72
优化关键字挖掘工具 浏览:672
markdown代码块语法 浏览:249
arcgis面文件属性 浏览:43
当数据都带有标准差如何计算 浏览:936
声音挑选程序扫描本地 浏览:57
编程语言中如何拼接两个字串符 浏览:482
工地数据中心包括哪些 浏览:972
人工成本分析工具 浏览:565
苹果qq群文件在哪里 浏览:724
产品和单位成本分析后有哪些数据 浏览:144
日语教程软件 浏览:99
有哪些事业编制的app 浏览:89
天籁app是什么来的 浏览:605
app上手机通话记录如何删除 浏览:798
win7建立超级隐藏文件夹 浏览:416
网络融合的意义 浏览:162
商务标文件内容和要点 浏览:161
远程桌面怎么修改密码 浏览:246

友情链接