命令“java temp”打印 Hello World。但是当我尝试使用 crontab 运行此命令时,它不起作用。
我在crontab中使用这个命令
*/2 * * * */usr/bin/java -cp/home/parth/javafile/temp
我也试过这个命令
*/2 * * * * root (cd/home/parth/javafile/temp.class ; java temp)
和
*/2 * * * * root/usr/bin/java -cp/home/parth/javafile/temp
但是这些命令也不起作用。
我还尝试创建脚本文件 .sh 并将 java 命令放入脚本中,然后使用 crontab 运行该脚本。但那个也不起作用。
我认为我在使用命令时做错了什么,但我不明白它到底是什么。
最佳答案
问题是,您的用户的 shell 没有运行命令。运行 CRON 作业的用户正在运行命令。在这种情况下,您永远不会看到打印到终端的输出。一种选择是将输出重定向到文件,例如:
*/2 * * * * /usr/bin/java -cp /home/parth/javafile/ temp >> /path/to/log/file 2>&1
末尾的位 2>&1
将标准错误重定向到与标准输出相同的位置。这样错误也会打印到日志文件中。
2
是标准错误的文件描述符
>
用于重定向输出
&
是文件描述符的符号
1
是标准输出的文件描述符
关于Java 文件不使用 crontab 运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41049262/