java - 检测从crontab启动的java程序

标签 java cron

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

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

知道如何解决这个问题吗?
我试过How can I check if a Java program's input/output streams are connected to a terminal?但这并不能回答我的问题。

最佳答案

很多选择:

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

关于java - 检测从crontab启动的java程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49359017/

相关文章:

php - 将 mySQL 查询作为 cron 作业运行?

php - 是否可以使用 cron 来代替 JavaScript 中的硬编码值?

php - 使用 Zend Framework 创建 cronjob

java - picasso + RxJava2 : Method call should happen from the main thread

java - 如何直接通过JQL找到多对多实体的交集?

java - 带有 RestEasy 和 FileServer 的 Netty

php - 读取从 cron 作业创建的文件

java - subprocess.Popen 的奇怪执行模式

java - JavaFX 的 PieChart 可以显示为 donut 吗?

MySQL 在线与批处理 - 防止 MySQL cron 作业阻止在线查询的选项?