日期:2014-05-16  浏览次数:20569 次

linux后台运行程序
最近自己写一个多线程做压力测试,故而要在linux中在后台运行自己写的java程序,其实很简单,只需要用到nohup命令。

如果想运行一个后台进程,需要下面这样做
nohup java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.Test >> /var/log/nohup.out &


这句话的意思是执行Test程序,并把日志输出到 /var/log/nohup.out文件中,如果不指定nohup.out文件的位置,那么nohup会自己在执行命令的目录下面创建nohup.out文件来输出日志,如果没有相应权限,则会在linux的目录下创建nohup.out文件。

结尾的 & 符号代表这个程序不会受到ctrl+c的影响,依然会在后台运行程序,而控制台可以做其他的事情。

那么如何将nohup的后台进程调出来进行控制呢?
只需要打印 jobs ,这样会列出当前系统的所有nohup后台进程表。
[1]+  Running                 nohup java -cp "./WEB-INF/lib/*:./WEB-INF/classes" cn.limaoyuan.Test >> /var/log/nohup.out &


接下来只需要 fg+%n ,如上面调出Test这个后台进程,需要 fg 1 ,那么这个进程就被恢复成前台进程,我们也就可以通过ctrl+c来终止这个程序了。