Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否有其他Ctrl+;C停止rails服务器?_Ruby On Rails_Ruby_Bash_Command Line - Fatal编程技术网

Ruby on rails 是否有其他Ctrl+;C停止rails服务器?

Ruby on rails 是否有其他Ctrl+;C停止rails服务器?,ruby-on-rails,ruby,bash,command-line,Ruby On Rails,Ruby,Bash,Command Line,我的键盘发生了一次不幸的事故,现在某些键和组合键无法工作。我正在使用bashshell发出命令。我看到使用Ctrl Pause/Break可以在几篇文章上停止服务器,比如,但我的键盘被映射为Fn+right shift表示暂停,Ctrl+Fn+right shift表示中断。这对我来说不起作用,因为这可能是我的键盘映射的方式,或者这是键盘现在不能做的另一件事。有没有其他方法可以让服务器停止 编辑:我现在使用外置键盘。尽管我发现自己正在尝试使用笔记本电脑的内置键盘。您可以使用ps命令找到rails

我的键盘发生了一次不幸的事故,现在某些键和组合键无法工作。我正在使用bashshell发出命令。我看到使用Ctrl Pause/Break可以在几篇文章上停止服务器,比如,但我的键盘被映射为Fn+right shift表示暂停,Ctrl+Fn+right shift表示中断。这对我来说不起作用,因为这可能是我的键盘映射的方式,或者这是键盘现在不能做的另一件事。有没有其他方法可以让服务器停止


编辑:我现在使用外置键盘。尽管我发现自己正在尝试使用笔记本电脑的内置键盘。

您可以使用
ps
命令找到rails进程,如下所示:

 ➜ ps aux
您会看到系统上运行的所有内容的列表。查找显示Rails应用程序的行

例如,我使用Passenger运行我的应用程序,我的应用程序名称是“demo”,我的流程线是:

me 30704 0.0 2.0 705696 155300 ? Sl 18:58 0:01 Passenger RackApp: demo
流程行显示您可能需要的两个项目:

  • 第二项是进程id号,也称为PID

  • 结束文本是正在运行的应用程序及其参数的名称

通过向PID发送信号INT终止进程:

➜ kill -s INT 30704
您可能需要的信号:

  • INT
    表示“程序中断”,当用户键入INTR字符(通常为C-C)时发送

  • 术语
    是要求程序终止的一种通用礼貌方式

  • KILL
    导致程序立即终止。它不能被处理、忽略或阻止

如果你必须不止一次这样做,那么就有捷径可走

要查找流程行,可以使用
grep
或类似工具,如
pgrep
pidof

 ➜ ps aux | grep Passenger
要查找流程id号,可以使用
awk
打印行的第二项:

 ➜ ps aux | grep Passenger | awk '{print $2}'
要终止名称或参数中具有特定模式的所有进程,可以使用
pkill

 ➜ pkill -f Passenger

要在rails服务器运行时停止它,请按:


CTRL-Z

您可以通过
kill
发送它SIGINT或SIGTERM。或者你可以花10美元买一个外置键盘。@ChrisHeald谢谢你快速搜索,如果有选择的话,SIGINT是更好的命令。我对bash还不熟悉。我输入了SIGINT命令,它显示“未找到命令”。我是否需要以任何特殊方式发出此命令?您可以尝试将“Caps Lock”重新映射为老式键盘的控制。使用
kill
命令为您发送信号(
SIGTERM
默认)。您可以使用
kill-pid
,其中
pid
是进程ID。如果您知道进程的名称,可以使用
pgrep-name
获取pid。您也可以使用pkill按名称进行杀戮,即
pkill-f unicorn
。这不会在预期(“杀戮”)意义上“停止”进程。