使用 Jekyll,如何从命令行停止分离的服务器进程?
With Jekyll, how do I stop a detached server process from the command line?
我正在尝试编写一个脚本,从命令行启动 Jekyll,执行另一个进程,然后停止它。
逻辑是这样的:
- 启动 jekyll 服务。
- 运行 调用 Prince 的进程从 HTML 文件构建 PDF。
- 停止 Jekyll 服务器。
我对命令行不是很有经验。我想我必须在 Jekyll 中使用 --detach
命令才能在预览服务器构建后继续 运行ning 脚本。但是如果我分离 Jekyll,停止服务器的唯一方法是杀死一个特定的 PID,但是 PID 号似乎是随机生成的。
有人对如何构建此脚本有任何提示吗?
如果你不知道 PID,你可以这样做:
kill $(ps aux | grep '[j]ekyll' | awk '{print }')
见explanations here
在OSX中,你可以发出
killall jekyll
我把它放到了 g运行t-shell 任务中。剩下的问题是 kill 和 killall 似乎都没有 --quiet 设置。如果它 运行 没有 return 代码或消息,那么 shell:jekyllStop g运行t 任务可能是我默认的第一步。如果 jekyll 恰好不是 运行ning,则默认 stops/fails。您可以让 g运行t 继续使用 --force,但该参数将适用于所有任务。
shell: {
jekyllStop: {
command: "killall jekyll"
}
},
运行 "shell:jekyllStop" (shell) 任务
未找到属于您的匹配进程
警告:命令失败:找不到属于您的匹配进程
使用 --force 继续。
由于警告而中止。
进程已完成,退出代码为 6
另一种停止 Jekyll 进程的方法(没有 PID)
pkill -f jekyll
我正在尝试编写一个脚本,从命令行启动 Jekyll,执行另一个进程,然后停止它。
逻辑是这样的:
- 启动 jekyll 服务。
- 运行 调用 Prince 的进程从 HTML 文件构建 PDF。
- 停止 Jekyll 服务器。
我对命令行不是很有经验。我想我必须在 Jekyll 中使用 --detach
命令才能在预览服务器构建后继续 运行ning 脚本。但是如果我分离 Jekyll,停止服务器的唯一方法是杀死一个特定的 PID,但是 PID 号似乎是随机生成的。
有人对如何构建此脚本有任何提示吗?
如果你不知道 PID,你可以这样做:
kill $(ps aux | grep '[j]ekyll' | awk '{print }')
见explanations here
在OSX中,你可以发出
killall jekyll
我把它放到了 g运行t-shell 任务中。剩下的问题是 kill 和 killall 似乎都没有 --quiet 设置。如果它 运行 没有 return 代码或消息,那么 shell:jekyllStop g运行t 任务可能是我默认的第一步。如果 jekyll 恰好不是 运行ning,则默认 stops/fails。您可以让 g运行t 继续使用 --force,但该参数将适用于所有任务。
shell: {
jekyllStop: {
command: "killall jekyll"
}
},
运行 "shell:jekyllStop" (shell) 任务 未找到属于您的匹配进程 警告:命令失败:找不到属于您的匹配进程 使用 --force 继续。
由于警告而中止。
进程已完成,退出代码为 6
另一种停止 Jekyll 进程的方法(没有 PID)
pkill -f jekyll