如何在Linux實現自動運行程序


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 命令來建立、修改、刪除這些命令文件。

下回詳解……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM