jekyll 2.2.0 |错误:地址已在使用-绑定(2)

jekyll 2.2.0 |错误:地址已在使用-绑定(2),jekyll,Jekyll,我不熟悉Jekyll的博客,并尝试在本地网站上查看博客 http://localhost:4000 但失败了 ➜ my-awesome-site > jekyll serve Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/ Configuration file: /home/Git/my-awesome-site/_config.yml Source: /hom

我不熟悉Jekyll的博客,并尝试在本地网站上查看博客

http://localhost:4000
但失败了

➜ my-awesome-site > jekyll serve
Notice: for 10x faster LSI support, please install http://rb-gsl.rubyforge.org/
Configuration file: /home/Git/my-awesome-site/_config.yml
        Source: /home/Git/my-awesome-site
   Destination: /home/Git/my-awesome-site/_site
  Generating...
                done.
Configuration file: /home/Git/my-awesome-site/_config.yml
jekyll 2.2.0 | Error:  Address already in use - bind(2)
我试过了

$ lsof -wni tcp:3000
$ lsof -wni tcp:4000
但他们都没有回报

我的Ruby版本是:

➜ my-awesome-site > ruby --version
ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]

接下来我该怎么办?我已经重新安装了jekyll,但同样的问题仍然存在

尝试查看哪个进程正在使用该端口,杀死它并再次运行,或者尝试在不同的端口上运行jekyll

请参阅中的注释,这些注释应能帮助您:

如果需要终止服务器,可以
kill-91234
在“1234”所在的位置 PID

如果找不到PID,则执行,
ps aux|grep jekyll
并杀死该实例

我把它修好了。我必须在命令中附加'sudo'

$> sudo lsof -wni tcp:4000
它将为您提供在tcp端口4000上运行的进程的信息,该端口还包含PID(进程ID)。现在使用下面的命令终止进程

$> sudo kill -9 PID
现在,您可以执行
jekyllserve
命令来启动您的站点

如果,请执行以下操作:

对任何人的修复:在未使用的端口上运行
jekyll-serve
: 两种方式:

  • \u config.yml
    文件中,像这样指定
    4000
    以外的端口,例如:
    port: 4001
    
    bundle exec jekyll serve --livereload --port 4001
    
  • 或者(我的首选),将
    --port 4001
    添加到
    jekyll-serve
    命令中,例如:
    port: 4001
    
    bundle exec jekyll serve --livereload --port 4001
    
  • 发件人:

    请看我的回答:

    我的特别问题是:无机器干扰: 当我跑步时:

    bundle exec jekyll serve --livereload --drafts --unpublished
    
    我发现以下错误:

    ps aux | grep jekyll
    不显示除此
    grep
    命令本身之外正在运行的任何进程。所以,这没有帮助

    但是,sudo lsof-wni tcp:4000显示了正在运行的
    nxd
    nx守护进程:

    我发现这是由于我的远程登录服务器

    如果运行NoMachine,请单击任务栏右上角的NoMachine图标。例:这是在Ubuntu 20.04上:

    然后单击“显示服务器状态”-->端口,您将看到NoMachine正在端口4000上运行
    nx
    ,这会干扰:

    因此,使用上面的修复程序在不同的端口上为jekyll提供服务,例如
    4001
    而不是
    4000
    我建议在端口
    4000
    上保持NoMachine端口设置不变,因为:

    • 自动更新要求安装了NoMachine客户端或服务器的主机能够访问端口
      4000
      上的NoMachine更新服务器,并使用TCP协议
    另见:

  • ➜ 我最棒的网站>ps aux | grep jekyll用户名53521 0.0 0.0 2432784 612 s000 S+2:12PM 0:00.00 grep jekyllit似乎没有什么好杀的。唯一具有关键字jekyll的正在运行的作业是“grep jekyll”,请您指出如何在其他端口上运行jekyll?在
    \u config.yml
    中控制,例如添加
    端口:4444
    。或者,正如@TuanAnhTran所说,您可以使用
    jekyll-serve-watch-port 4444
    尝试不同的端口来帮助我