guodanhuai的个人博客分享 http://blog.sciencenet.cn/u/guodanhuai GIS,Spatio-temporal Analysis,Spatio-temoporal Data minig

博文

不要让你的程序挂起

已有 5166 次阅读 2009-9-22 14:35 |个人分类:Linux|系统分类:科研笔记|关键词:学者| Linux, nohup, 挂起

在Linux中,ssh客户端启动geoserver,当退出ssh后,geoserver进程退出停止了,这是为什么呢?

我们在启动geoserver后,用查看进程的命令查看geoserver进程
ps -ef
的可以看到:

geoserver进程的父进程(PPID)为12505,这个进程的副进程又属于12292,在上图中,实际上是该客户端启动了三个ssh窗口。所以当客户端的所有ssh窗口退出后,geoserver的进程也被终止。

要解决此问题,就需要将你的应用程序在后台运行,可以用nohup命令 和& ,nohup命令的原意应该是no hang up:

在Unix/Linux下一般比如想让某个程序在后台运行,一般可以使用在程序的结尾加上&来让程序自动运行。但是并不是所有的程序都做成了守护进程,这样,如果终端被关闭,程序也会被关闭。为了能够后台运行,可以使用nohup命令

nohup命令的语法:
nohup Command [Arg] [ &]
nohup运行有Command参数和任何相关的Arg参数指定的命令,忽略所有挂断(SIGUP)信号,在注销后使用nohup命令运行后台中的程序。要运行后台中的nohup命令,添加&到命令的尾部。

无论是否将nohup命令的输出重定向到终端,输出都将附加到当前目录的nohup.out文件中。若当前目录的nohup.out文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么Command参数指定的命令不可调用。


在本例中,运行了 nohup ./startup.sh &
后,12280进程的父进程为1,即init进程,这样在你关闭终端后,你的geoserver仍然在后台运行。





PS:Linux的可控制性确实很好,但如果你没有掌握它,使用起来还挺麻烦,现在我是越来越喜欢上它了。

https://m.sciencenet.cn/blog-204718-257098.html

上一篇:CityGML
下一篇:WFS and WMS

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-5 22:22

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部