Linux

在centOS 6 64bit中從非root使用者啟動時自動執行linux程序

  • August 3, 2014

我有一個需要通過特定使用者“非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 腳本,但一個範例需要以# chkconfigMySQL 初始化腳本開頭的行的內容。

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