最近因为项目需要在linux启动项添加程序,于是我在/etc/profile.d/目录下添加了运行脚本,但是我写的程序client.sh是带界面的,结果卡住了,无法进入系统,无法退出(正常情况下应该有退出按钮,但是因为图形界面未完整加载所以看不到关闭按钮,另外尝试windows下的alt+f4按钮也无效);导致开机的时候一直停留在等待页面。

在网上搜索了一下得到如下结果:

1. 在Linux开机页面,点击“e“,进入到GRUB的编辑页面;

2. 将会看到很多行,其中一行,一看就是加载核心模块的,会有”VMLinuZ..."字样,然后在这一行的末尾敲入:single(或者S,大写,代表单用户);

3.之后,就是进入到了安全模式页面;在linux里面的安全模式就是单用户模式,之后,就可以修改rc.local的内容了。

之后又碰到了一次安装之后,直接进入到了GRUB界面,应该是安装的过程中发生了异常(可能是当时虚拟机的内存(512M)太小导致),导致引导菜单没有安装成功。使用安装文件(光驱/iso文件)引导,选择硬盘启动(但是不要敲回车),点击“e”进入到GRUB编辑页面,修改启动内容。

只是遗憾的是并不适用于我,因为我的系统是更改过的国产化操作系统,基于ubuntu的ubuntukylin操作系统,于是在网上寻求进入linux安全模式的办法,终于找到了这篇文章,其实我只看了第一句话,就解决了我的问题,使用快捷键进入单用户模式,登陆用户,然后去掉了启动项搞定问题:

1、按ctrl-alt-f1(f1-f6一般来说bai都可以),然后等一会儿,就会切换到
tty,也就是所谓的文字界面。
2、这个时候需要用用户名密码登入。注意,可能键盘输入的速度比较慢,不过应该还是可以忍受的。
3、下面在提示符后面输入
top
回车,这时会看到一张动态的表,上面列出了耗用资源最多的进程。
4、观察它刷新一两次,按q退出,然后输入
kill
,其中的
pid
你可以在
top
里面看到。这个时候应该会快了不少,如果你发现没有成功结束掉,就再输入
kill
-kill
,这次基本上就没问题了。
2
1、大家在键盘上找,可以找到一个叫做“sys
rq”的键,在台机的键盘上通常与
prt
sc
共键,在笔记本可能在其他位置,如
delete。
2、以台机为例,要使用这种方法需要按住
alt-print(sys
rq),然后依次按下
reisub
这几个键,按完
b
系统就会重启。
下
面解释一下这个方法:其实
sys
rq
是一种叫做系统请求的东西,按住
alt-print
的时候就相当于按住了
sys
rq
键,这个时候输入的一切都会直接由
linux
内核来处理,它可以进行许多低级操作。这个时候
reisub
中的每一个字母都是一个独立操作,他们分别表示:
unraw
将键盘控制从
x
server
那里抢回来
terminate
给所有进程发送
sigterm
信号,让他们自己解决善后
kill
给所有进程发送
sigkill
信号,强制他们马上关闭
sync
将所有数据同步至磁盘
unmount
将所有分区挂载为只读模式
reboot
重启
这6个字母的顺序是不可以记错的。那怎么记呢?这里提供一个个人认为比较好的方法:单词
busier(busy的比较级,更忙)倒过来就是了

下面是当时的截图:

重启linux 卡在reached target shutdown linux卡死在启动界面_安全模式

去掉client.sh之后,顺利进入系统,至此问题解决!

这也提醒我,要为程序加上一个退出快捷键,类似于windows下的alt+f4,不然某些特殊的时候,确实会带来不便!