Linux
在centOS 6 64bit中從非root使用者啟動時自動執行linux程序
我有一個需要通過特定使用者“非root”執行的軟體,因此它的主目錄是
/home/non-root/
,我必須強調該程序不能通過root執行,只能在mysql開始執行後執行它有一個需要通過命令執行的軟體:
./athena-start start
. 我對unix系統不是很熟悉,我嘗試用Google搜尋任何教程,但我沒有找到一個教如何通過非root和centos自動執行的指南,我在這裡找到了這個,但似乎只是對於 Fedora。有人可以幫助我嗎?
有幾種方法可以解決這個問題。一個初始化腳本,使用 crontab 和其他各種。以我的拙見,最簡單的方法是
@reboot
在應該執行athena-start start
命令的使用者的 crontab 中使用標記。該
@reboot
標籤在您的電腦啟動後只執行一次命令。用於crontab -e -u <yourusername>
將以下內容放入您選擇的使用者的 crontab 中。以下是您應該放入 crontab 的內容。@reboot while [ "x`ps -ef|awk '$8 ~ /[:print:]*mysqld[:mysqld:]*/ { print $2 }'|wc -l`" == "x0" ]; do sleep 10 ; done && cd /your/directory && ./your_command
將其寫入腳本並放置在某個地方可能是個好主意,而不是在您的 crontab 中使用可怕的單行。所有這一切背後的想法是:我們每 10 秒檢查一次程序表,如果我們找到匹配項,即。有一個 mysqld 程序(或類似的程序),我們退出循環,切換到要執行的珍貴命令所在的目錄,然後最後執行該命令。
另一種選擇是編寫一個在 MySQL 守護程序之後啟動的 init 腳本,但一個範例需要以
# chkconfig
MySQL 初始化腳本開頭的行的內容。