如何在Linux实现自动运行程序
1、開(kāi)機(jī)啟動(dòng)時(shí)
Linux加載后,?它將初始化硬件和設(shè)備驅(qū)動(dòng),?然后運(yùn)行第一個(gè)進(jìn)程init。
init根據(jù)配置文件繼續(xù)引導(dǎo)過(guò)程,啟動(dòng)其它進(jìn)程。通常情況下,修改放置在?/etc/rc或?/etc/rc.d?(?/etc/rc?.d)?目錄下的腳本文件,可以使init自動(dòng)啟動(dòng)其它程序。
/etc/rc:This file is responsible for starting/stopping services when the runlevel changes
例如:
編輯?/etc/rc.d/rc.local?文件,在文件最末加上一行"xinit"或"startx",可以在開(kāi)機(jī)啟動(dòng)后直接進(jìn)入X-Window。
?
2、登錄時(shí)
Q:bash啟動(dòng)時(shí),會(huì)進(jìn)行初始化,初始化就是執(zhí)行一些腳本,有哪些腳本呢?
A:分2種情況
①登錄時(shí)啟動(dòng)的bash,登錄shell
初始化腳本執(zhí)行順序:/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc
#如果這些腳本中的變量發(fā)出沖突,那么以最后一個(gè)腳本的設(shè)置生效。
②登錄后啟動(dòng)的bash,非登錄shell
初始化腳本執(zhí)行順序:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh
?
注意:這些腳本中不要亂增加內(nèi)容。例如:在腳本中增加echo,這會(huì)導(dǎo)致每次登錄都輸出echo(常用惡作劇)。
?
3、退出登錄時(shí)
退出登錄時(shí),bash自動(dòng)執(zhí)行個(gè)人的退出登錄腳本.bash_logout。
例如:
在/.bash_logout中加入命令"tar?-cvzf?c.source.tgz?*.c",則在每次退出登錄時(shí)自動(dòng)執(zhí)行?"tar"?命令備份?*.c?文件。
?
4、定期自動(dòng)運(yùn)行程序
①使用at命令調(diào)用atd進(jìn)程設(shè)置在某個(gè)特定的時(shí)間,執(zhí)行一次性任務(wù)。
②使用crontab命令調(diào)用crond進(jìn)程,設(shè)置按固定的周期(如每天、每周等)重復(fù)執(zhí)行預(yù)先計(jì)劃好的任務(wù)。
Linux有一個(gè)稱(chēng)為crond的守護(hù)程序,主要功能是周期性地檢查?/var/spool/cron目錄下的一組命令文件的內(nèi)容,并在設(shè)定的時(shí)間執(zhí)行這些文件中的命令。
用戶(hù)可以通過(guò)crontab?命令來(lái)建立、修改、刪除這些命令文件。
轉(zhuǎn)載于:https://blog.51cto.com/12879490/1923494
總結(jié)
以上是生活随笔為你收集整理的如何在Linux实现自动运行程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 软件测试江湖之公会武器之争
- 下一篇: Go 语言读写 Excel