linux - %H :%i. pid 在 .service 文件中做什么?

标签 linux systemd

好吧,我到处找遍了,找不到它在做什么。下面是 .service 文件中的一行,用于在启动时启动 tightvnc。

PIDFile=/home/username/.vnc/%H:%i.pid

我假设它正在从文件夹中获取 username:1.pid 但我不明白各个部分 %H 和 %i 实际上在做什么?我知道脚本的其余部分在其他几行中使用了 %i。具体来说:

ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

我也不确定 %H 和 %i 运算符叫什么,所以很难在网上搜索它们。我能够推断的是 %H 一定是在获取用户名,但我不确定 %i 是在获取什么数字。

/usr/bin/vncserver 中的文件如下,带日期字符串:

May 26 16:04 username:1.log
May 26 15:56 username:1.pid
May 26 15:21 username:2.log
May 26 15:21 username:2.pid
May 26 15:21 username:3.log
May 26 15:21 username:3.pid
May 25 17:31 passwd
May 25 17:35 xstartup
May 25 17:32 xstartup.bak

我在其中添加日期的唯一原因是因为我知道 %H 可以代表几个小时,但我非常怀疑它在这里代表什么。

最佳答案

.service 文件不是 bash 脚本,它们是 systemd 使用的单元文件。这些文件的结构描述为here . % 后跟一个字母是被各种系统参数替换的说明符:

  • %H = 主机名
  • %i = 实例名称

关于linux - %H :%i. pid 在 .service 文件中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44211506/

相关文章:

linux - 如何将 systemd 服务的输出重定向到文件

ruby - compass 安装在 WebSpace : Command not found

c++ - 代码块停止使用 gnome-terminal (linux) 执行

c - Linux:当父进程退出时退出 fork 的子进程

ubuntu - 不确定我如何将 Docker 网络问题解决到 pkg repos

linux - 哪个是PID1 :/sbin/init or systemd

Linux:查找大于 500x500 的图像,然后移动到某个文件夹 (Find+Xargs+Mv)

linux - Ubuntu Linux : Netbeans cannot detect Git or Cordova installed

ubuntu - 在 AWS EC2 Ubuntu 中设置 kafka.service 和 zookeeper.service

docker - 不允许使用Docker CentOS systemctl