博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java程序以后台方式在Linux上运行(nohup命令)
阅读量:4552 次
发布时间:2019-06-08

本文共 2317 字,大约阅读时间需要 7 分钟。

一、预备


命令

:nohup java cn.aofeng.LoopApplication >Loop.log &

说明
    1)将cn.aofeng.LoopApplication设置成后台运行,并且将标准输出的日志重定向至文件Loop.log。
    2)nohup 表示不挂断运行,&表示以后台方式运行。
源代码:

package cn.aofeng;

import java.text.Format;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

 *

 * @author aofeng <a href="mailto:aofengblog@163.com">aofengblog@163.com</a>

 * @version 1.0.0

 * @since 1.0.0

 */

public class LoopApplication {

   public static void main(String[] args) {

      Format format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

      while(true) {

        String date = format.format(new Date());

        System.out.println("Current Time:" + date);

        try {

           Thread.sleep(1000);

        } catch (InterruptedException e) {

           e.printStackTrace(System.out);

        }

      }

   }

}

二、实践


1、telnet 登陆到Linux,执行命令

aofeng@suse9t90:~/aofeng/app> nohup java cn.aofeng.LoopApplication >Loop.log &
[1] 11860
系统返回作业号(1)和进程号(11860)。
2、退出telnet,再重新telnet登陆到Linux。
3、查看当前目录
aofeng@suse9t90:~/aofeng/app> ls
cn  Loop.log
结果显示已经在当前目录(app)下生成了日志文件Loop.log。
4、查看日志内容
aofeng@suse9t90:~/aofeng/app> tail -f Loop.log
Current Time:2008-11-14 10:59:03
Current Time:2008-11-14 10:59:04
Current Time:2008-11-14 10:59:05
Current Time:2008-11-14 10:59:06
Current Time:2008-11-14 10:59:07
Current Time:2008-11-14 10:59:08
Current Time:2008-11-14 10:59:09
日志显示程序正在运行,每秒向日志写入一行数据。
5、查看进程信息
aofeng@suse9t90:~/aofeng/app> ps -ef | grep java
1004     11860 11826  0 10:53 pts/4    00:00:00 java cn.aofeng.LoopApplication
三、附:nohup 命令


  用途:不挂断地运行命令。

  语法:nohup Command [ Arg ... ] [ & ]
   描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
   无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。
  退出状态:该命令返回下列出口值:
  126 可以查找但不能调用 Command 参数指定的命令。
  127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
  否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
  nohup命令及其输出文件
  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。
  该命令的一般形式为:nohup command &
  使用nohup命令提交作业
  如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
  nohup command > myout.file 2>&1 &
  在上面的例子中,输出被重定向到myout.file文件中。
<正文结束>

转载于:https://www.cnblogs.com/WayneZeng/archive/2011/10/20/Bob.html

你可能感兴趣的文章
设计模式
查看>>
idea快捷键(最常用)
查看>>
sftp安装(linux)
查看>>
java第三方工具包
查看>>
bad SQL grammar []; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
查看>>
mysql引擎与物理文件
查看>>
IOC&AOP
查看>>
升级 phpStudy 中 MySQL 版本至 5.7.17
查看>>
php发送邮件
查看>>
adminMongo:mongoDB node GUI(mongoDB图形化界面)
查看>>
有点懵!
查看>>
Node +FastDFS 实现文件的上传下载
查看>>
ROS melodic安装过程中的用手机热点更好~
查看>>
apicloud如何实现优雅的下拉刷新与加载更多
查看>>
apicloud含有微信支付。支付宝支付和苹果内购的代码
查看>>
C# 集合的交集 差集 并集 去重
查看>>
vue+hammer.js完美实现长按、左滑,右滑等触控事件
查看>>
PLSQL Developer数据库连接和tnsname.ora的配置
查看>>
ORA-28000 帐户已被锁定问题处理
查看>>
扫码枪读取条形码数据(vue)
查看>>