跳到正文
本页目录

lip daemon

显示或停止 lip 的守护进程。

概要

text
lip daemon status [--json] [-h | --help]
lip daemon stop [-h | --help]

说明

守护进程是属于你这个用户、在后台运行的 lip 进程,它为其他所有 lip 进程执行命令:除 daemon 组以外的所有命令,以及界面。托管服务器也由它运行。

你不需要自己启动它:

  1. 命令连接守护进程。没有守护进程在监听时,命令会启动一个,使用它自己的环境变量,并与终端分离。
  2. 如果守护进程属于另一个 lip 版本,或另一个 lip 可执行文件,命令会要求它退出,再启动一个新的。忙碌中的守护进程会继续运行;参见更新之后。
  3. 守护进程执行命令的方式与你启动的 lip 完全一样:在你的工作目录中,使用你的环境变量,读取你的标准输入,写到你的标准输出和标准错误,并接收你的 Ctrl+C。lip 以命令的退出码退出。

命令无法启动或连接守护进程时,会写一条消息,然后自己执行命令。此时只有 lip run --managed 会失败。

守护进程为两个终端执行的两条命令,表现得就像两个进程:例如,一条命令持有工作区锁时,另一条会发现锁被占用。

守护进程会自行退出:

  • 在一段时间内既没有连接也没有运行托管服务器之后,当前版本中是 10 分钟;
  • 在更新的或另一个 lip 要求它退出,而它处于空闲时;以及
  • 在执行了更新 lip 或启动安装程序的 lip self-update 之后,一旦空闲。

守护进程通过只有你这个用户能使用的端点访问:Windows 上是命名管道,其他系统上是 Unix 套接字。参见守护进程端点。

lip daemon status

显示是否有守护进程在端点上监听;有的话,还显示它的版本和进程 ID。

lip daemon stop

要求守护进程退出,并等待它退出。

  • 没有守护进程在监听时,命令成功,不做任何更改。
  • 守护进程正在执行命令或运行托管服务器时,命令失败,守护进程继续运行。请先停止托管服务器:在各个工作区中用 lip run --managed 连接并按 Ctrl+C,或者在界面的服务器页停止它们。等其他命令结束。然后再次运行 lip daemon stop。

这两条命令都由你启动的进程自己执行,从不交给守护进程,也从不启动守护进程。

更新之后

旧版本 lip 的守护进程如果还在运行托管服务器或命令,就不会被替换。在它空闲之前:

  • lip run --managed 使用旧的守护进程,所以你仍然可以连接并停止它的服务器;
  • 其他命令会写一条消息,然后由新的 lip 自己执行。

停止托管服务器之后,下一条命令就会启动新版本的守护进程。

选项

选项说明
--json用于 status:以 JSON 输出结果。
-h、--help输出帮助并退出。

输出

lip daemon status 把结果写到标准输出。不带 --json 时是给人看的一行:

text
The daemon of lip does not run.
text
The daemon of lip 1.0.0 runs as process 4812, carrying out 0 commands.

带 --json 时,没有守护进程在监听:

json
{"running":false}

有守护进程在监听:

json
{"running":true,"version":"1.0.0","pid":4812}
成员值
running布尔值:是否有守护进程在端点上监听。
version字符串:守护进程的版本,即它的 lip -v 输出的内容。仅当 running 为 true 时存在。
pid数字:守护进程的进程 ID。仅当 running 为 true 时存在。

lip daemon stop 没有结果;它向标准错误写消息。

退出状态

命令0非 0
lip daemon status无论守护进程是否在运行。用法错误。
lip daemon stop守护进程已退出,或本来就没有运行。用法错误,或守护进程正忙而继续运行。

示例

查看守护进程是否在运行:

shell
lip daemon status

在脚本中,仅当守护进程在运行时停止它:

shell
lip daemon status --json | jq -e '.running' > /dev/null && lip daemon stop

另请参阅