Java后台执行Shell脚本, Java方法不用等待Shell程序执行完成并保证关掉Java程序Shell脚本正常运行

   首先说明,我现在要解决的两个问题:


1、如果要调用的Shell脚本是常驻内存,也就是说里面有循环不会结束的脚本,我用Java方法调用,但是不能等Shell执行完成,即调用执行一下后,我的Java方法要结束,同时还要保证Shell已经运行了;

        2、用Java调用后,把Java程序杀掉,这时由Java执行的Shell脚本要保证正常运行,不能随Java程序的关闭而停止。


        这里涉及到两个问题,一个是后台执行Shell脚本,一个是设置为孤立进程。后台执行Shell脚本的方法有好多种,比如直接加&,或使用Ctr+Z,也或者bg等等,还有一个就是设置为孤立进程,我查到的有这样的说法,使用setsid,nohup等等,这样的文章很多,在这我就不多说了。下面是我的解决方法:

        Java后台执行Shell脚本,在关掉Java程序时保证Shell脚本正常运行,同时让JAVA方法不用等待程序执行完成就返回,使用如下 命令:

        nohup ./test.sh >test.out 2>&1 &

       Java程序运行就是这样:Runtime.getRuntime().exec("nohup /home/test/test.sh >/del/nul 2>&1 &");
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欧米优

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值