我正在使用 PuTTY 通过 SSH 进入我的无头式 Ubuntu 11.04 服务器,并且处于 byobu 会话中。
我启动了 mysql_safe 守护进程,因为我试图修复 mysql 的密码问题。我遵循本教程。
守护进程成功启动,并且我能够在另一个 byobu 屏幕上完成所需的步骤,但是我启动守护进程时所在的屏幕现在拒绝以任何对我来说有意义的方式接受输入。
这是终端文本:
username@computername:/usr/bin$ sudo mysqld_safe --skip-grant-tables
130427 10:43:53 mysqld_safe Logging to syslog.
130427 10:43:53 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
/
cd /
ls
exit
^C
^X
exit
help
/h
stop
sudo make me a sandwich
底部的几行文字疯狂地向我发出“停止,我不喜欢,让我离开这里”等我能想到的所有命令,但都无济于事。光标只是坐在那里嘲笑我,打印我输入的内容,但什么也没做。请注意,我尝试了两次退出,以防它第一次没有听到我的声音。
我确信我可以关闭屏幕或会话,或者重新启动服务器,但我更愿意真正了解发生了什么。提示符停止听你说话是否意味着什么?在这种情况下,这是预期的行为吗?
我确信这个问题的答案很简单,但我甚至不知道该用什么语言来搜索,因为我不知道该怎么称呼这个问题。如果有重复的,请随时告诉我。另外,如果这个问题有更好的标题,请告诉我。
我确实看到了这个问题(命令提示符中发生奇怪的事情),但进入另一个会话并输入答案pkill -CONT bash
对我来说不起作用。即使这样做有效,我也不知道这一切实际上意味着什么,而这正是我在这里所追求的。
答案1
阻止它的最好方法是这样做
打开另一个终端或另一个 SSH 会话,然后执行
ps -eaf | grep -in mysqld
这是我从我的机器上得到的结果
150:root 5816 31671 0 10:36 pts/4 00:00:00 sudo mysqld
152:mysql 5839 5816 0 10:36 pts/4 00:00:00 mysqld
156:1000 6446 6278 0 10:36 pts/5 00:00:00 grep --color=auto -in mysqld`
现在做
sudo kill -9 5839
不要输入 5839,而是输入您在输出中找到的与 mysqld 对应的数字ps -eaf
。这将停止已在运行的 mysqld 守护进程。
现在,要启动 MySql,请按照以下步骤操作
sudo mysqld &
这将在后台启动 MySql 守护程序。
编辑:mysqld 守护进程运行无限循环,处理传入的请求。当我们在前台启动它时,它不会响应,因为它只会通过端口处理请求。它会忽略所有键盘输入。这就是您的终端不响应您的原因。