Linux中怎样用命令启动后台java进程
启动java后台进程有两种方式:
1. 绝对路径/bin/java() : 后台运行,你关掉终端会停止运行
2. nohup 绝对路径/bin/java (java程序) : 后台运行,你关掉终端也会继续运行
java相关操作有:
1.查看java进程信息:
ps -ef | grep java
2.结束java进程:
kill -9 java程序名称
用putty或secureCRT通过SSH登录到LINUX,并启动一些进程(比如java) ,为什么关闭了putty,java进程也会关
【原因所在】
元凶:SIGHUP 信号
让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。
在Linux/Unix中,有这样几个概念:
进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。
根据POSIX.1定义:
挂断信号(SIGHUP)默认的动作是终止程序。
当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
如果会话期首进程终止,则该信号发送到该会话期前台进程组。
一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。
因此当网络断开或终端窗口关闭后,控制进程收到SIGHUP信号退出,会导致该会话期内其他进程退出。
linux下java进程自动消失了,这是什么情况
一般来讲linux中程序不会自动消失,只会自动休眠。出现这种情况,基本上来说都是手动把进程kill掉;或者程序本身存在问题。 建议你仔细检查下你的main程序吧
linux如何正常关闭java服务,不用kill -9
正常的java程序,你启动,ctrl+c退出的时候也跟着退出了。
用nohup /run.sh 这样的需要用kill -9 或者你自己写一个特殊的sh用来专门杀这个进程也可以、