[英]Detect java program started from crontab
在Redhat OS上,我有一个启动Java程序的脚本。 该脚本可以从命令行启动,但也可以由crontab(定期)启动。
在该程序中,我需要知道该程序是如何启动的。 这是因为将输出写入STDOUT(如果从命令行启动)或写入日志文件(如果由crontab启动)。
首先,我认为我可以使用System.console()
。
问题在于,如果从命令行启动了程序,但重定向了STDIN和/或STDOUT,则此方法也返回null
。
任何想法如何解决这个问题?
我尝试了如何检查Java程序的输入/输出流是否已连接到终端? 但这不能回答我的问题。
很多选择:
-Dcron=1
命令行选项,以设置可以检查的属性 args[]
数组进行检查 启动Java程序之前,请使用在cron作业中设置的环境变量。 查询程序内部的环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.