首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cron作业没有运行jar

Cron作业没有运行jar
EN

Stack Overflow用户
提问于 2016-05-15 07:01:45
回答 3查看 1.2K关注 0票数 0

这是我创建Delete.jar的Java文件

代码语言:javascript
运行
复制
import java.io.*;

public class Delete {
 public static void main(String[] args)
    {
        try{
            int i =1;
            while(i<5){
                File directory = new File("downloads");
                System.out.println("I am running");
                for(File file: directory.listFiles()) file.delete();
                i++;
             }
        }catch(Exception e){

                e.printStackTrace();

        }

    }
}

如果jar文件没有运行,这是我的脚本。

代码语言:javascript
运行
复制
#!/bin/bash
processid=`pgrep -f 'Delete.jar high'`
echo "Processes:"$processid
if [ -n "$processid" ]
then
echo "Process is running. No action will be taken"
else
echo "Process is not running. Executing ResponseHandler-fast now !"
cd /home/ubuntu/;
java -jar Delete.jar high
fi

这是我添加到crontab -e中的行

代码语言:javascript
运行
复制
* * * * * sh /home/ubuntu/check.sh

我重新启动了我的系统,我期望我的脚本会运行,检查jar没有运行,并且它会运行它,但是它没有这样做。我在这里做错了什么。

如果我在2-3分钟后执行ps,我将不会将java作为一个条目。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-15 07:42:08

克伦并没有神奇地让这个程序“永远运行”。手动启动程序。可能需要1-2秒才能运行,然后退出。这正是与cron一起运行时发生的情况。因此,除非您在程序启动后运行ps,否则您将看不到进程列表中的任何内容。

您的循环1.5没有帮助,因为在第一轮删除了文件之后,其余的实际上是不操作的。

票数 1
EN

Stack Overflow用户

发布于 2016-05-15 07:27:00

请将shell脚本的输出发送到日志文件,如下所示(对crontab条目进行更改):

代码语言:javascript
运行
复制
* * * * * sh /home/ubuntu/check.sh >> /home/ubuntu/output.log 2>&1

通过这种方式,您将知道具体运行的是什么,然后找到确切的原因将变得更容易。

票数 2
EN

Stack Overflow用户

发布于 2016-05-15 07:07:22

您试过手动运行/home/ubuntu/check.sh吗?可能是它找不到jar文件,甚至是java程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37235432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档