开机启动时自动运行程序
linux在开机后,首先开始加载硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,通过修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。
登录时自动运行程序
在登录时,bash首先自动执行系统管理员建立的全局登录script :/ect/profile。然后bash在用户起始目录下按顺序执行三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。 因此,只需根据实际需要在上述文件中加入命令就可以实现。而我们平时使用的.bashrc文件,仅仅是被.profile脚本加载的。
退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令“tar -cvzf c.source.tgz *.c”,则在每次退出登录时自动执行 “tar” 命令备份 *.c 文件。
定期自动运行程序 :crontab的守护程序
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
设置开机启动登录前执行程序代码
进入etc/init.d中执行sudo vim myinit.sh。
在myinit.sh中添加下面代码:
#!/bin/bash ### BEGIN INIT INFO # # Provides: location_server # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: ss-server initscript # Description: This file should be used to construct scripts to be placed in /etc/init.d. # ### END INIT INFO # 下面填写要执行的代码 # 比如: sudo ....
填写完后进行 sudo chmod 775 ./myinit.sh赋予执行权限。
最后sudo update-rc.d myinit.sh defaults 90 进行信息更新 reboot 即可。