Centos
cron 權限
我對 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
這對我有用。