繁体   English   中英

检测从crontab启动的Java程序

[英]Detect java program started from crontab

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

首先,我认为我可以使用System.console()
问题在于,如果从命令行启动了程序,但重定向了STDIN和/或STDOUT,则此方法也返回null

任何想法如何解决这个问题?
我尝试了如何检查Java程序的输入/输出流是否已连接到终端? 但这不能回答我的问题。

很多选择:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM