问题:
想写个自启动脚本偷个懒,发现重启之后没有进程,想到可能是脚本里程序执行太快,就写了个死循环测试下,然后偷懒不干了。
设置开机自启动:
# 编写一个简单的脚本,刚开始没执行,测试用的
echo "echo 'this is a test' >> /opt/file.txt">> test.sh
chmod +x test.sh
# 将脚本添加到/etc/rc.d/rc.local
pwd
/home/mztt/test.sh
echo "/home/mztt/test.sh" >> /etc/rc.d/rc.local
#下面这几句是文件里注释内容提醒要给它执行权限
# 这个文件是为了兼容性的问题而添加的。
#强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。
#与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。
#请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。
chmod +x /etc/rc.d/rc.local
reboot
#重启之后查看 /opt下有file.txt文件 ok 确实执行了
想着没问题,我没在/etc/rc.d/rc.local里面加,而这里面执行的脚本,会在系统启动之后运行,逛了百度和goole,找到解决办法。
解决:
- 重启系统
- 在内核界面按e 进入编辑
- 在倒数第二行有个ro 将ro 修改为 rw init=/sysroot/bin/sh
- ctrl + x 保存(这地方别按esc或重启,修改会重置) 进入当用户模式
- 在单用户终端执行 chroot /sysroot 提权
- 最后,将/etc/rc.d/rc.local的错误文件去掉,reboot就ok了。
root密码丢失,处理方法类似。