1、最简单的方法:
在/etc/rc.local文件中exit 0之间添加要自动运行的语句,如:
echo "shangyunfeitest" > /root/sss
重启系统后即可自动运行
2、在/etc/profile文件中末尾行添加,
如:
echo "shangyunfeitest" > /root/aaa
/root/abc.sh
Bash /root/aaa.sh
/etc/profile是在启动一个交互登陆shell的时候被调用
注意,对于死循环的脚本,必须在运行该脚本的语句后加&,使之后台运行,否则系统启动时会不停的进入死循环,无法进入系统。如:dynamic_address_change.sh是一个while(1)循环程序,则在/etc/profile中填入时,应写:bash /root/dynamic_address_change.sh &
3、带启动优先级的启动(这种方法比较适用)
编写shell脚本
gedit /etc/init.d/shangtest.sh
chmod +x /etc/init.d/shangtest.sh
ubuntu默认启动级别为2加载的脚本在/etc/rc2.d/
ln -s /etc/init.d/ shangtest.sh /etc/rc2.d/S99shangtest (ln意为建立快捷方式,-S为开始执,所有以S打头的文件才会自动执行,99为执行顺序,默认即可,shangtest为文件名),这样会在/etc/rc2.d文件夹下生成一个快捷方式S99shangtest,指向/etc/init.d/ shangtest.sh。
这种方式可以在脚本文件中直接写bash /root/dynamic_address_change.sh或者/root/dynamic_address_change.sh,而不一定要后台运行。
运行*.sh脚本默认运行等于命令bash *.sh运行方式,sh *.sh有时会有问题。
使用runlevel命令查看运行级别。
参考文献:
1.
2.
3.