2016-05-15 129 views
0

這對於我創造Delete.jarcron作業沒有運行罐子

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(); 

     } 

    } 
} 

我的Java文件這是我的腳本來運行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 

我重新啓動我的系統我期待,我的腳本將運行檢查罐子線無法運行寧,它會運行它,但它並沒有這樣做。 我在這裏做錯了。

如果我在2 -3分鐘後執行ps仍然沒有將java作爲條目。

謝謝。

+0

檢查腳本的權限! – Devavrata

回答

1

克朗不會奇蹟般地讓程序「永遠運行」。手動啓動程序。它可能需要1-2秒才能運行,然後退出。這正是使用cron運行時所發生的情況。所以,除非你運行ps第二個程序開始,你不會看到進程列表中的任何東西。

您的循環1..5不會幫助,因爲在第一輪刪除文件之後,其餘的文件實際上是無效的。

1

您是否嘗試手動運行/home/ubuntu/check.sh?可能是它沒有找到jar文件甚至java程序。

2

請把你的shell腳本的輸出如下所示(更改您的crontab條目)日誌文件:

* * * * * sh /home/ubuntu/check.sh >> /home/ubuntu/output.log 2>&1 

這樣,你就會知道究竟正在運行,然後找到確切的原因將變得更容易。