nohup

linux进程后台运行的几种方法 - nohup/setsid/&

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

脚本运行控制

Deadly 提交于 2019-12-02 07:25:21
Linux通过信号在运行在系统的进程之间通信,用信号来停止启动及无条件终止进程。同样也可以用信号来控制shell脚本的运行。 1.Linux系统信号 Linux系统和应用程序可以生成30多个信号,最常见的有: 信号 值 描述 1 SIHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进程 17 SIGSTOP 无条件停止,但不是终止进程 18 SIGTSTP 停止或暂停,但不终止 19 SIGCONT 继续运行停止的进程 bash shell 会忽略信号3和15,会处理1和2. 1.1产生信号 bash shell 允许键盘上的组合生成两种基本linux信号: Ctrl+C会生成SIGINT信号——终止进程 Ctrl+Z会生成SIGTSTP信号——暂停进程 注: shell中每个运行的进程称为作业,每个作业有唯一的作业号,shell会给第一个作业分配作业号1,第二个2,以此类推。 1.2捕捉信号trap trap可以捕获Linux的信号,并从shell中拦截。 trap命令格式:trap command signals 其中command是捕获信号后想要执行的命令,singals是一组用空格分开的信号,可以用数值或信号名来指定。 eg:trap “echo 'Sorry! I have

linux bg和fg命令

被刻印的时光 ゝ 提交于 2019-12-02 05:40:32
原文链接:https://blog.csdn.net/carolzhang8406/article/details/51314894 linux下我们如果想一个任务或者程序还后台执行可以使用&,实际上linux还提供了其他任务调度的命令。 bg 将一个在后台暂停的命令,变成继续执行 fg 将后台中的命令调至前台继续运行 jobs 查看当前有多少在后台运行的命令 ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停 nohup 命令 用途:不挂断地运行命令。 语法:nohup Command [ Arg … ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部 来看实际操作的例子 启动一个时钟程序: ctrl+z以后输出为: 这个使用用pidof xclock去查看进程号还是存在,说明程序在后台暂停 执行bg %1 可以看到程序继续执行 一个更明显的例子可以看出bg和fg的区别:firefox &符号有无的区别 nohup 如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程

springBoot项目部署批处理命令

孤街浪徒 提交于 2019-12-02 01:57:09
deploy.sh #!/bin/bash export BUILD_ID=dontKillMe pid=`ps -ef | grep /home/rivamed/install/rmcpser/rmcpser-exec-1.0.0.18.war | grep -v grep | awk '{print $2}'` if [ -n "$pid" ] then kill -9 $pid fi #指定最后编译好的jar存放的位置 www_path=/home/rivamed/install/rmcpser #Jenkins中编译好的jar名称 jar_name=rmcpser-exec-1.0.0.18.war source /etc/profile #进入最后指定存放jar的位置 cd ${www_path} war_path=${www_path}/${jar_name} config_path=${www_path}/config nohup java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8400 -Dfile.encoding=UTF-8 -Dcas.standalone.config="$config_path" "$war_path" > nohup.out 2>&1 &

Linux下如何不停止服务,清空nohup.out文件

北慕城南 提交于 2019-12-02 01:55:15
最近发现有不少人在百度这个问题,当初如易我也是初学者,随便从网上搜了一下,就转过来了,不过为了避免搜索结果同质化,为大家提供更翔实的参考,我将nohup.out相关知识整理汇总如下: 1.nohup.out的由来及作用 用途:LINUX命令用法,不挂断地运行命令。 语法:nohup Command [ Arg … ] [ & ] 描述: nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。 例子: nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台执行,并且打印过程日志到nohup.out,当然也可以将nohup.out的输出转向到其他文件,高级应用请参考扩展阅读。 2.nohup.out的查看方式与方法 实际使用过程中,往往人们为了省心(嗯,没错,就是懒),经常没有给nohup.out进行重定向输出,也没有按日期分割文件,会造成这个文件特别巨大,达到2G或者3G,这个使用想查看文件,搜索出错内容就比较痛苦了。一般有两种方式 1.linux本机查看:使用tail 命令,查看最新的日志,或滚动监控日志打印。 例如命令 tail -1000

Linux系统下jar包的启动方式

时光毁灭记忆、已成空白 提交于 2019-12-02 00:43:50
Linux 运行jar包命令如下: 方式一: Java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu.jar & &代表在后台运行。 特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。 继续改进,如何让窗口关闭时,程序仍然运行? 方式三 nohup java -jar shareniu.jar & nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。 方式四 nohup java -jar shareniu.jar >temp.txt & 解释下 >temp.txt command >out.file command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。 可通过jobs命令查看后台运行任务 jobs 那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。 如果想将某个作业调回前台控制,只需要 fg + 编号即可。 fg 23 查看某端口占用的线程的pid netstat -nlp

【Linux命令】nohup命令用法

时光怂恿深爱的人放手 提交于 2019-12-01 18:26:16
nohup命令用法   当我们想将某个脚本或程序运行在后台的时候。我们一般会在程序或脚本后面添加 & 字符来表示在后台运行,但使用& 运行在后台,当我们将shell窗口关闭时,该脚本或程序也就会自动退出。这时候我们想要退出shell窗口时依然继续在后台运行脚本,需要使用nohup命令:不挂断的运行命令 格式: Usage: nohup COMMAND [ARG]... or: nohup OPTION 如:nohup ./test.sh & 描述:   nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部。   无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。 退出状态:   126 可以查找但不能调用 Command 参数指定的命令。   127 nohup

nohub相关

半城伤御伤魂 提交于 2019-12-01 11:47:52
  nohup 是 no hang up 的缩写,就是 不挂断 的意思。   nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。   在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。 nohup和&的区别   &:指在后台运行   nohup:不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。 &是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出 那么,我们可以巧妙的吧他们结合起来用就是 nohup COMMAND & 这样就能使命令永久的在后台执行 例如: 1. sh test.sh & 将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但 标准输出和标准错误信息会丢失(缺少的日志的输出) 将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。 2. nohup sh test.sh 将sh test.sh任务放到后台,关闭标准输入, 终端不再能够接收任何输入(标准输入)

linux环境下nohup的执行jar

让人想犯罪 __ 提交于 2019-12-01 07:56:27
java -jar XXX.jar & 命令结尾没有 “&” ,则变成 “java -jar XXX.jar ” ,表示在当前ssh窗口,可按CTRL + C打断程序运行,或者直接关闭窗口,则程序直接退出 命令结尾添加 “&” ,则变成 “java -jar XXX.jar &” ,表示在当窗口关闭时,程序才会中止运行。&代表让该命令在后台执行。 nohup java -jar XXX.jar > Log.log & 或者 nohup java -jar XXX.jar >> Log.log & 命令 "nohup java -jar XXX.jar &" 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行。注意,该作业的所有输出被重定向到nohup.out的文件中。 命令 "nohup java -jar XXX.jar > Log.log &" 部分,表示不挂断运行命令,当账户退出或终端关闭时,程序仍然运行,并且该作业的所有输出被重定向到Log.log的文件中。“ > Log.log ” 该命令就是指定日志输出的文件。 ">>"表示将输出以追加的方式重定向到Log.log中。 nohup java -jar XXX.jar > Log.log 2>&1 & 或者 nohup java -jar XXX.jar >> Log.log 2>&1 & 或者 nohup

Linux下 nohup后台运行springboot jar 包时,使用指定的 application.yml配置

与世无争的帅哥 提交于 2019-12-01 02:36:25
jar 包启动时指定配置文件 application.yml nohup java -jar -Dserver.port=8080 wx-member-card-0.0.1-SNAPSHOT.war --spring.config.location=file:./application-prod.yml & nohup java -jar vTest.jar --spring.config.location=/opt/v Test -conf/application.yml > /opt/v Test -conf/nohup.out 2>&1 & 如果不喜欢将 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/jym-sunshine/p/11648565.html