使用Jekyll,如何从命令行停止分离的服务器进程?

时间:2015-04-22 22:36:58

标签: jekyll

我正在尝试编写一个脚本,从命令行启动Jekyll,执行另一个进程,然后停止它。

逻辑是这样的:

  1. 启动jekyll serve。
  2. 运行一个名为Prince的进程,从HTML文件构建PDF。
  3. 停止jekyll服务器。
  4. 我对命令行不太熟悉。我想我必须在Jekyll上使用--detach命令在预览服务器构建之后继续运行脚本。但是如果我分离Jekyll,停止服务器的唯一方法是杀死一个特定的PID,但PID号似乎是随机产生的。

    任何人都有关于如何构建此脚本的任何提示?

3 个答案:

答案 0 :(得分:4)

如果你不了解PID,你可以这样做:

kill $(ps aux | grep '[j]ekyll' | awk '{print $2}')

请参阅explanations here

答案 1 :(得分:0)

停止Jekyll进程的另一种方法(没有PID)

pkill -f jekyll

答案 2 :(得分:-1)

在OS X中,您可以发出

killall jekyll

我把它放到了一个grunt-shell任务中。剩下的问题是杀戮和killall似乎都没有 - 设置。如果它运行时没有返回代码或消息,那么shell:jekyllStop grunt任务可能是我默认的第一步。如果jekyll没有运行,则默认停止/失败。您可以继续使用--force,但该参数将适用于所有任务。

shell: {
  jekyllStop: {
    command: "killall jekyll"
  }
},

运行“shell:jekyllStop”(shell)任务 找不到属于您的匹配流程 警告:命令失败:找不到属于您的匹配进程  使用--force继续。

因警告而中止。

流程已完成退出代码6