Centos

cron 權限

  • September 2, 2017

我對 CentOS 伺服器中的權限有疑問。

我創建了一個從 dmidecode 讀取一些值的 NetCore 應用程序。當我在我的 CentOS 伺服器中部署應用程序時,我執行了以下命令:

chmod 777 ApplicationName

然後,我執行它,一切正常。

我的問題是當我嘗試在 crond 中設置該應用程序時,我會這樣做:

1) service crond stop

2) crontab -e

3) * * * * * cd /ApplicationFolder && ./ApplicationName

4) service crond start

我的應用程序已執行,但我無法獲得我試圖讀取的 dmidecode 值,我假設我遇到了權限問題,因為它在作為控制台應用程序執行時工作正常。

我嘗試通過執行以下操作在 crond 行中設置使用者:

* * * * * root cd /ApplicationFolder && ./ApplicationName

但是什麼也沒有發生,應用程序甚至沒有啟動……

有誰知道我做錯了什麼?

編輯

根據評論的建議,我將 crontab 更改為:

* * * * * /ApplicationFolder/ApplicationName

但同樣的事情正在發生……

我認為我遇到與權限相關的問題的原因是,如果我將程序作為應用程序執行,值會記錄到文本文件中,而當我使用 crond 執行應用程序時,會記錄相同的資訊,但值是空的。

我還讀到,當從 dmidecode 讀取序列號時,我們需要 root 權限,但我目前使用 crontab 的帳戶已經是 root 帳戶。

對於任何有這樣的問題的人,我設法通過使用絕對路徑來解決我的問題。

似乎 cron 在相對路徑方面存在一些問題……

基本上而不是:

dmidecode

我有:

/usr/sbin/dmidecode

這對我有用。

引用自:https://unix.stackexchange.com/questions/389750