nohup

Linux 技巧:让进程在后台可靠运行的几种方法

旧城冷巷雨未停 提交于 2019-12-16 18:39:46
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。 nohup/setsid/& 场景: 如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳定运行呢? hangup 名称的来由 在 Unix 的早期版本中,每个终端都会通过 modem 和系统通讯。当用户 logout 时,modem 就会挂断(hang up)电话。 同理,当 modem 断开连接时,就会给终端发送 hangup 信号来通知其关闭所有子进程。 解决方法: 我们知道,当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。因此,我们的解决办法就有两种途径:要么让进程忽略 HUP 信号,要么让进程运行在新的会话里从而成为不属于此终端的子进程。 nohup nohup 无疑是我们首先想到的办法。顾名思义,nohup 的用途就是让提交的命令忽略 hangup 信号。让我们先来看一下 nohup 的帮助信息: NOHUP(1) User Commands

liunx的常用命令

北战南征 提交于 2019-12-16 09:30:50
文件有可执行权限 chmod u+x file lsof(list open files)是一个列出当前系统打开文件的工具。 lsof -i 列出所有的网络连接 例如 lsof -i:8088 列出端口号为8088的连接信息 ps aux | grep 12456 ps aux显示所有程序 while read line 从标准输入读取值存到line中 sudo -i 切换成root用户 默认安装完成之后并不知道root用户的密码,那么如何应用root权限呢? (1)sudo 命令 xzm@ubuntu:~$ sudo 这样输入当前管理员用户密码就可以得到超级用户的权限。但默认的情况下5分钟root权限就失效了。 (2)sudo -i xzm@ubuntu:~$ sudo -i 通过这种方法输入当前管理员用户的密码就可以进到root用户。 (3)如果想一直使用root权限,要通过su切换到root用户。 那我们首先要重设置root用户的密码: xzm@ubuntu:~$ sudo passwd root 这样就可以设置root用户的密码了。 pwdx 进程pid可以查看进程的工作目录 pwdx 17712 如果文件没在当前目录,那么就需要用绝对路径来执行/opt/test/a.sh dirname $0 只是获取的当前脚本的相对路径 cd dirname $0 ;pwd

Shell编程—控制脚本

浪子不回头ぞ 提交于 2019-12-15 21:42:04
1 处理信号 1.1 信号表 编号 信号名称 缺省操作 解释 1 SIGHUP Terminate 挂起控制终端或进程 2 SIGINT Terminate 来自键盘的中断 3 SIGQUIT Dump 从键盘退出 4 SIGILL Dump 非法指令 5 SIGTRAP Dump 跟踪的断点 6 SIGABRT Dump 异常结束 6 SIGIOT Dump 等价于SIGABRT 7 SIGBUS Dump 总线错误 8 SIGFPE Dump 浮点异常 9 SIGKILL Terminate 强迫进程终止 10 SIGUSR1 Terminate 对进程可用 11 SIGSEGV Dump 无效的内存引用 12 SIGUSR2 Terminate 对进程可用 13 SIGPIPE Terminate 向无读者的管道写 14 SIGALRM Terminate 实时定时器时钟 15 SIGTERM Terminate 进程终止 16 SIGSTKFLT Terminate 协处理器栈错误 17 SIGCHLD Ignore 子进程停止、结束或在被跟踪时获得信号 18 SIGCONT Continue 如果已停止则恢复执行 19 SIGSTOP Stop 停止进程执行 20 SIGTSTP Stop 从tty发出停止进程 21 SIGTTIN Stop 后台进程请求输入 22

Linux进程关闭和后台运行解析

倖福魔咒の 提交于 2019-12-14 17:01:53
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 1.问题背景 Java是跨平台的,大部分程序也都是在Linux服务器上运行的。但是很多朋友其实对服务器了解并不多,对相关知识也是一知半解。很多概念可能知道,但是并不十分清楚,仅仅是基本运用。可能很多新手朋友脱离了IDE或者web容器,都不知道怎么在服务器上运行程序。 举个简单的例子,相信很多朋友刚接触Linux的时候都遇到过这个问题。我们通过终端连接上服务器,通过命令行或者脚本运行了一个程序,然后关闭了终端连接,可能程序进程就消失了。我们也可能知道,在启动命令后面加&符号,可以进程在后台运行,关闭终端后,进程依然会消失,但如果通过shell脚本去运行,关闭终端连接后,程序可能不会消失。或者我们又知道可以通过nohup命令让进程在后台运行,并且关闭连接后,程序不会消失,到底为什么呢? 下面我会用比较通俗的语言进行讲解,如果有错误,欢迎指正。 2.进程关闭分析 当我们连接到服务器以后,运行的命令,启动的程序,设置的环境变量,都会挂在当前的连接中(非特殊设置或者特殊命令),当连接关闭时,所有东西都会消失。 进程的关闭,是通过信号进行传递的。我们通过 kill 命令发送不同的信号,去关闭指定的进程, 当我们关闭终端连接时,会向当前终端连接的下游进程发送 SIGHUP 信号(就是 kill -1 ),触发进程关闭动作。

nohup 和 &

余生长醉 提交于 2019-12-14 02:26:47
关于nohup 和 &的使用 nohup 是 no hang up 的缩写,意思是不挂断运行,一直运行下去,永久运行下去,但是注意并没有后台运行的功能 & 是在后台运行的意思 单独使用一个命令,还不能在终端关闭的时候,让进程继续执行 以这个jar包为例,说明一下要如何使用 nohup command & 这样就能使命令永久的在后台执行 nohup /opt/jdk1.8.0_131/bin/java -jar ggg.jar & 缺省输出文件的时候,会自动在当前目录下生成nohup.out文件,如下截图。 其中8118是进程号 如果想停止该进程,就直接kill -9 [PID] 说一下不用nohup和&的区别 1. /opt/jdk1.8.0_131/bin/java -jar ggg.jar 2. nohup /opt/jdk1.8.0_131/bin/java -jar ggg.jar 3. nohup /opt/jdk1.8.0_131/bin/java -jar ggg.jar & 第一种只有命令行,回车之后输出执行日志,若执行control +c 或者关闭终端,进程将终止;如下两个截图 第2种 nohup + 命令行,回车之后输出nohup: appending output to `nohup.out',若执行control +c 或者关闭终端,进程将终止; 第3种

(转自张戈博客)Linux系统防CC攻击自动拉黑IP增强版Shell脚本

别说谁变了你拦得住时间么 提交于 2019-12-13 21:29:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> (转自张戈博客) 前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个问题,但是还是想暂时取消CDN加速和防护来测试下服务器的性能优化及安全防护。 前天写的Shell脚本是加入到crontab计划任务执行的,每5分钟执行一次,今天实际测试了下,可还是可以用的,但是感觉5分钟时间有点过长,无法做到严密防护。于是稍微改进了下代码,现在简单的分享下! 一、Shell代码 #!/bin/bash #Author:ZhangGe #Desc:Auto Deny Black_IP Script. #Date:2014-11-05 #取得参数$1为并发阈值,若留空则默认允许单IP最大50并发(实际测试发现,2M带宽,十来个并发服务器就已经无法访问了!) if [[ -z $1 ]];then num=50 else num=$1 fi #巧妙的进入到脚本工作目录 cd $(cd $(dirname $BASH_SOURCE) && pwd) #请求检查、判断及拉黑主功能函数 function check(){ iplist=`netstat -an |grep ^tcp.*:80

Can I execute a multiline command in Perl's backticks?

醉酒当歌 提交于 2019-12-12 18:35:22
问题 In Unix, I have a process that I want to run using nohup. However this process will at some point wait at a prompt where I have to enter yes or no for it to continue. So far, in Unix I have been doing the following nohup myprocess <<EOF y EOF So I start the process 'myprocess' using nohup and pipe in a file with 'y' then close the file. The lines above are effectively three seperate commands - i.e. I hit enter on the first line in UNIX, then I get a prompt where I enter 'y' and then press

nohup 详解

℡╲_俬逩灬. 提交于 2019-12-12 13:53:11
阅读目录 nohup 案例 nohup和&的区别 参考链接 正文 回到顶部 nohup nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 nohup 是 no hang up 的缩写,就是不挂断的意思 。 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。 回到顶部 案例 1. nohup command > myout.file 2>&1 & 在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ; 2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。 2. 0 22 * * * /usr/bin/python /home/pu/download_pdf/download_dfcf_pdf_to_oss.py >

Creating a Nohup Process in Java

陌路散爱 提交于 2019-12-11 16:37:24
问题 Using ProcessBuilder , I've been trying to create an independent process that doesn't get terminated when the JVM gets terminated, but nothing seems to work. I've tried /usr/bin/nohup commands , but that still seems to terminate when the JVM that launched it is terminated. Is there any way to accomplish this in Java? 回答1: Well, first things first lets write a test script that validates what you're seeing: $ cat /tmp/test.sh #!/bin/bash for sig in SIGINT SIGTERM SIGHUP; do trap "echo Caught

java -jar

荒凉一梦 提交于 2019-12-11 14:56:41
jar 包启动时指定配置文件 application.yml nohup java -jar vPaas.jar --spring.config.location=/opt/vpaas-conf/application.yml > /opt/vpaas-conf/nohup.out 2>&1 & java -jar springboot jar --server.port=8181 java -jar springboot jar --spring.profiles.active=dev 如果不喜欢将 application.properties 作为配置文件名,你可以通过指 定 spring.config.name 环境属性来切换其他的名称,也可以使 用 spring.config.location 环境属性引用一个明确的路径(目录位置或文件路 指定配置文件:--spring.config.location=/opt/vpaas-conf/application.yml 将所有的调试信息输入到:/opt/vpaas-conf/nohup.out 来源: https://www.cnblogs.com/lshan/p/12022483.html