首頁 > 軟體

如何在Linux實現自動執行程式

2020-06-16 17:14:37

1、開機啟動時

  Linux載入後, 它將初始化硬體和裝置驅動, 然後執行第一個進程init。

  init根據組態檔繼續引導過程,啟動其它進程。通常情況下,修改放置在 /etc/rc或 /etc/rc.d ( /etc/rc?.d) 目錄下的指令碼檔案,可以使init自動啟動其它程式。

/etc/rc:This file is responsible for starting/stopping services when the runlevel changes

例如:

  編輯 /etc/rc.d/rc.local 檔案,在檔案最末加上一行"xinit"或"startx",可以在開機啟動後直接進入X-Window。(也可修改/etc/inittab)

  新增mount /dev/sr0  /mnt,開機自動掛載光碟機(用於yum安裝)。

2、登入時

Q:bash啟動時,會進行初始化,初始化就是執行一些指令碼,有哪些指令碼呢?

A:分2種情況

①登入時啟動的bash,登入shell

初始化指令碼執行順序:/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

#如果這些指令碼中的變數發出衝突,那麼以最後一個指令碼的設定生效。

②登入後啟動的bash,非登入shell

初始化指令碼執行順序:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

注意:這些指令碼中不要亂增加內容。例如:在指令碼中增加echo,這會導致每次登入都輸出echo(常用惡作劇)。

3、退出登入時

  退出登入時,bash自動執行個人的退出登入指令碼.bash_logout。

例如:

  在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",則在每次退出登入時自動執行 "tar" 命令備份 *.c 檔案。

4、定期自動執行程式

①使用at命令呼叫atd進程設定在某個特定的時間,執行一次性任務。

②使用crontab命令呼叫crond進程,設定按固定的週期(如每天、每週等)重複執行預先計劃好的任務。

  Linux有一個稱為crond的守護程式,主要功能是周期性地檢查 /var/spool/cron目錄下的一組命令檔案的內容,並在設定的時間執行這些檔案中的命令。

  使用者可以通過crontab 命令來建立、修改、刪除這些命令檔案。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/144011.htm


IT145.com E-mail:sddin#qq.com