我有一个runOcr.sh脚本,运行一个Jar程序,这个程序的任务是每隔5秒钟扫描指定目录,扫描新增图片信息,然后将获取的结果放到数据库,脚本如下:
java -jar -Xms256m -Xmx1024m OCRClient.jar &
运行环境是在SUSE 9企业版下。
我通过xmanger连接到suse上,执行sh命令。用以下几种方式。
方法一:nohup ./runOcr.sh & 会在命令所在文件夹生成一个nohup.out记录命令运行情况
方法二:setsid ./runOcr.sh &
方法三:新开一个screen来运行命令
这几种方式在断开xmanger终端连接后一样在运行。但是当我新增图片到指定目录,这个程序就一直卡在哪里,不读新增图片信息。如果我通过xmanger重新登录系统,只是登录,什么都不做,程序也不卡了,继续开始读取新增的图片信息。感觉是这个进程睡眠了,需要重新登录激活这个程序一样。
我的问题:如何解决上面的现象,远程登录后运行服务在断开,后台进程一直运行不卡呢?tomcat的startup.sh是如何做的呢?