1. 程式人生 > >crontab不能正常執行的五種原因

crontab不能正常執行的五種原因

1 crond服務未啟動

crontab不是Linux核心的功能,而是依賴一個crond服務,這個服務可以啟動當然也可以停止。如果停止了就無法執行任何定時任務了,解決的方法是開啟它:

crond

service crond start

如果提示crond命令不存在,可能被誤刪除了,CentOS下可以通過這個命令重新安裝:

yum -y install crontabs

2 許可權問題

比如:指令碼沒有x執行許可權,解決方法:

增加執行許可權,或者用bash abc.sh的方法執行

linux執行:

#/usr/local/php/bin/php test.php

3 路徑問題

有的命令在shell中執行正常,但是在crontab執行卻總是失敗。有可能是因為crontab使用的sh未正確識別路徑,比如:以root身份登入shell後執行一個/root/test.sh,只要執行

./test.sh

就可以了。但是在crontab中,就會找不到這個指令碼,比如寫完整:

/root/test.sh

4 時差問題

因為伺服器與客戶端時差問題,所以crontab的時間以伺服器時間為準。

5 變數問題

有時候命令中含有變數,但crontab執行時卻沒有,也會造成執行失敗。

相關推薦

crontab不能正常執行原因

1 crond服務未啟動 crontab不是Linux核心的功能,而是依賴一個crond服務,這個服務可以啟動當然也可以停止。如果停止了就無法執行任何定時任務了,解決的方法是開啟它: crond 或 service crond start 如果提示crond命令不存

轉載:selenium webdriver定位不到元素的原因及解決辦法

出現 src 解決 rac 屬於 fin 就是 testing dbo 1.動態id定位不到元素for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_compone

關於專案釋出到雲伺服器Tomcat無法正常執行的部分原因

最近在用java寫後端程式連結資料庫的時候,發現專案在本地執行連結與伺服器資料庫沒問題,但是部署到雲伺服器Tomcat訪問雲伺服器資料庫的時候就無法正常訪問,換各種方式都不行,最後在關鍵位置都返回結果分析後發現,伺服器tomcat專案下沒有匯入支援的第三方jar包,比如JD

selenium webdriver定位不到元素的原因及解決辦法

1.動態id定位不到元素 for example:         //WebElement xiexin_element = driver.findElement(By.id("_mail_component_82_82"));         WebElement xiexin_element = dr

執行緒的生命週期以及基本狀態

一.執行緒的生命週期及五種基本狀態 關於Java中執行緒的生命週期,首先看一下下面這張較為經典的圖: 上圖中基本上囊括了Java中多執行緒各重要知識點。掌握了上圖中的各知識點,Java中的多執行緒也就基本上掌握了。主要包括: Java執行緒具有五中基本狀態 新建狀態(New

執行緒的狀態

執行緒在它的生命週期中會處於各種不同的狀態: 新建狀態(New) 用new語句建立的執行緒物件處於新建狀態, 此時它和其他Java物件一樣;僅在堆區中被分配了記憶體; 就緒狀態(Runnable) 當一個執行緒物件建立後,其他執行緒呼叫它的start()方法,該執行緒

【搞定Java併發程式設計】第1篇:執行緒的可用狀態

本文轉載自牛客網上一網友的回答:概括的解釋下執行緒的幾種可用狀態 第一種狀態:新建(new):新建了一個執行緒物件。例如,Thread thread = new Thread(); 第二種狀態:可執行狀態(Runnable):又叫“就緒狀態”。執行緒新建後,其他執行緒(比如main執行

java多執行緒(一):執行緒的基本狀態以及生命週期

1、Java執行緒具有五中基本狀態: 新建狀態(New):當執行緒物件對建立後,即進入了新建狀態,如:Thread thread1 = new MyThread(); 就緒狀態(Runnable):當呼叫執行緒物件的start()方法[ 如:thread1 .start(); ],執行緒

執行狀態

執行緒五種狀態 執行緒,有時被稱為輕量程序(Lightweight Process,LWP),是程式執行流的最小單元。一個標準的執行緒由執行緒ID,當前指令指標(PC),暫存器集合和堆疊組成。另外,執行緒是程序中的一個實體,是被系統獨立排程和分派的基本單位,執行緒自己不擁有系統資源,只擁有一點兒

併發程式設計之多執行緒基礎-執行狀態(三)

原文地址:https://www.cnblogs.com/wangyichuan/p/5990821.html 執行緒從建立、執行到結束總是處於下面五個狀態之一:新建狀態、就緒狀態、執行狀態、阻塞狀態及死亡狀態。     1.新建狀態(New):         當用new操作符建立一個執行緒時,

執行緒的生命週期及基本狀態

生命週期的五種狀態 新建(new Thread) 當建立Thread類的一個例項(物件)時,此執行緒進入新建狀態(未被啟動)。 例如:Thread  t1=new Thread(); 就緒(runnable) 執行緒已經被啟動,正在等待被分配給CPU時間片,也就是說此

[執行緒池] 關於執行緒池的狀態

執行緒狀態 在ThreadPoolExecutor類中定義了執行緒的五種狀態表示,通過AtomicInteger 的高三位來表示執行緒的狀態: private static final int

JAVA中執行緒狀態的分析

Thred執行緒狀態的分析 Java執行緒的生命週期中,存在幾種狀態。 新建狀態: NEW: 執行緒建立之後,但是還沒有啟動(not yet started)。這時候它的狀態就是NEW 執行狀態: RUNNABLE: 正在Java虛擬機器下跑任務的執行緒的狀態。在RUNNABLE狀態下的

內部類形式將執行緒隱藏於類中

1.使用普通內部類繼承Thread類 public class ThreadTestOne { private int countDown = 5; private Inner inner; private class Inner

啟動執行緒的方式方法(通過繼承Thread類或實現Runnable介面)

package day01; /**  * 啟動執行緒的五種方式方法:  * 本質:繼承Thread類或實現runnable介面  * @author Administrator  *  */ public class ThreadDemo {  /**   * @para

從零開始學Java之內部類將執行緒隱藏類中

1.使用普通內部類繼承Thread類 <code class="hljs java has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box;

執行緒同步的方法

2、同步程式碼塊; 3、使用特殊域變數(volatile)實現執行緒同步; volatile關鍵字為域變數的訪問提供了一種免鎖機制 使用volatile修飾域相當於告訴虛擬機器該域可能會被其他執行緒更新 每次使用該域就要重新計算,而不是使用暫存器中的值

普通使用者crontab執行原因

今天我發現我寫的cron竟然沒執行,然後在cron log裡發現下面的資訊 CRON (xxx): failed to open PAM security session,cannot set security context 出現類似現象一般原因有二 1、xxx的使用者資

java學習筆記——spring之aop、切面類中通知的使用、存在多個切面類時切面通知的執行順序、註釋的方式定義切面類與通知、xml配置的方式定義切面類與通知

3、AOP AOP:(Aspect Oriented Programming)面向切面程式設計; OOP:(Object Oriented Programming )面向物件程式設計; 面向切面程式設計:基於OOP基礎之上新的程式設計思想; 指在程式執行期間,

Java多執行緒(十):多執行緒同步的方法

一、為什麼要執行緒同步     因為當我們有多個執行緒要同時訪問一個變數或物件時,如果這些執行緒中既有讀又有寫操作時,就會導致變數值或物件的狀態出現混亂,從而導致程式異常。舉個例子,如果一個銀行賬戶同時被兩個執行緒操作,一個取100塊,一個存錢100塊。假設賬戶原本有0塊,如