检测从crontab启动的java程序

检测从crontab启动的java程序,java,cron,Java,Cron,在Redhat OS上,我有一个启动Java程序的脚本。此脚本可以从命令行启动,但也可以由crontab(定期)启动。 在这个项目中,我需要知道项目是如何开始的。这是因为输出要么写入标准输出(如果从命令行启动),要么写入日志文件(如果由crontab启动) 首先,我想我可以使用System.console() 问题是,如果程序是从命令行启动的,但STDIN和/或STDOUT被重定向,则此方法也会返回null 知道如何解决这个问题吗? 我试过了,但那没有回答我的问题。在启动java程序之前,使用在

在Redhat OS上,我有一个启动Java程序的脚本。此脚本可以从命令行启动,但也可以由crontab(定期)启动。
在这个项目中,我需要知道项目是如何开始的。这是因为输出要么写入标准输出(如果从命令行启动),要么写入日志文件(如果由crontab启动)

首先,我想我可以使用
System.console()

问题是,如果程序是从命令行启动的,但STDIN和/或STDOUT被重定向,则此方法也会返回
null

知道如何解决这个问题吗?

我试过了,但那没有回答我的问题。

在启动java程序之前,使用在cron作业中设置的环境变量。查询程序内的环境变量。

在启动java程序之前,使用在cron作业中设置的环境变量。查询程序中的环境变量。

有很多选项:

  • 从cron运行时添加一个
    -Dcron=1
    命令行选项,以设置可检查的属性
  • 从cron运行时,在命令行中添加一个简单的参数,并通过查看
    args[]
    数组来检查它
  • 在脚本中设置环境变量并在程序中检查它
  • 有很多选择:

  • 从cron运行时添加一个
    -Dcron=1
    命令行选项,以设置可检查的属性
  • 从cron运行时,在命令行中添加一个简单的参数,并通过查看
    args[]
    数组来检查它
  • 在脚本中设置环境变量并在程序中检查它

  • 我已经怀疑它不能自动完成。我选择第二种选择。谢谢。我已经怀疑这不能自动完成。我选择第二种选择。谢谢