这是我创建Delete.jar的Java文件
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文件没有运行,这是我的脚本。
#!/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中的行
* * * * * sh /home/ubuntu/check.sh我重新启动了我的系统,我期望我的脚本会运行,检查jar没有运行,并且它会运行它,但是它没有这样做。我在这里做错了什么。
如果我在2-3分钟后执行ps,我将不会将java作为一个条目。
谢谢。
发布于 2016-05-15 07:42:08
克伦并没有神奇地让这个程序“永远运行”。手动启动程序。可能需要1-2秒才能运行,然后退出。这正是与cron一起运行时发生的情况。因此,除非您在程序启动后运行ps,否则您将看不到进程列表中的任何内容。
您的循环1.5没有帮助,因为在第一轮删除了文件之后,其余的实际上是不操作的。
发布于 2016-05-15 07:27:00
请将shell脚本的输出发送到日志文件,如下所示(对crontab条目进行更改):
* * * * * sh /home/ubuntu/check.sh >> /home/ubuntu/output.log 2>&1通过这种方式,您将知道具体运行的是什么,然后找到确切的原因将变得更容易。
发布于 2016-05-15 07:07:22
您试过手动运行/home/ubuntu/check.sh吗?可能是它找不到jar文件,甚至是java程序。
https://stackoverflow.com/questions/37235432
复制相似问题