nohup java_在linux下利用nohup来后台运行java程序

最近要写一个程序来刷新一下memcached中的缓存信息,于是写一个java main来去进行清理,如果在command line直接运行程序,如

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

java -cp"./WEB-INF/lib/*:./WEB-INF/classes"cn.limaoyuan.FirstTest

java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.FirstTest

有人说要最后加一个&即可,可是我没有弄成功,况且linux提供了更好的方法。

这样虽然使java main正确运行,但是会占据你的一个ssh窗口,如果要有多个java main同时运行,那么你又要另启动一个ssh窗口来去以类似的方法运行另一个java main,那么有没有更好的方法来解决这种需求呢?答案是肯定的,在linux系统中可以利用nohup来执行任何命令,并把命令自动调到linux后台运行,不锁定当前ssh窗口,也不会被ctrl + c,alt + F4之类打断程序的动行。如:

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

nohup java -cp"./WEB-INF/lib/*:./WEB-INF/classes"cn.limaoyuan.FirstTest &

nohup java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.FirstTest &

这样执行后,nohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中, 我们也可以手动指定一个参数来规定日志文件的输出地点,如:

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

nohup java -cp"./WEB-INF/lib/*:./WEB-INF/classes"cn.limaoyuan.FirstTest [color=red]> /home/logs/firstlog.log[/color] &

nohup java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.FirstTest [color=red]> /home/logs/firstlog.log[/color] &

这样日志就会输出在/home/logs/firstlog.log文件里。 如果我们想执行多个java main,那么我们只需要以同样的方式去执行其他的java main.

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

nohup java -cp"./WEB-INF/lib/*:./WEB-INF/classes"cn.limaoyuan.SecondTest [color=red]> /home/logs/secondlog.log[/color] &

nohup java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.SecondTest [color=red]> /home/logs/secondlog.log[/color] &

那么我们怎么调出所有用nohup执行的程序呢? 只需要一句命令:

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

jobs

jobs

那么就会列出所有nohup执行的后台程序,并且每个程序前面都有个编号。 如果想将某个程序调回前台控制,只需要 fg + 编号即可。

Java代码 79f9fbf9299af8ddf245bb511e9fb426.gif e7676eb8635dd9d6a4073dba3eeeafe5.png

0b5894ecab3206aa26962922f73c3cdf.gif

fg1

fg 1

那么编号为1的程序就会调回到前台,这时如果要终止程序,只需ctrl + c 即可退出程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值