在.service文件中,%H:%i.pid是什么意思?

6
好的,我已经到处寻找,但找不到这是干什么的。下面是一个.service文件中的一行,用于在启动时启动tightvnc。
PIDFile=/home/username/.vnc/%H:%i.pid

我假设它从文件夹中抓取用户名: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”可以代表小时,但我非常怀疑这不是它在这里所代表的意思。

1
.service 文件不是 bash 脚本,而是 systemd 使用的配置文件。% 的内容将被 systemd 替换。 - Barmar
@Barmar,应该将它改成什么标签,而不是bash? - Cc Dd
1
我刚刚把它改成了systemd - Barmar
1个回答

7

.service文件不是bash脚本,它们是由systemd使用的单元文件。这些文件的结构在这里描述。以%开头的字母是特定规范,会被各种系统参数替代:

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

难怪我找不到它。一旦它让我检查答案,我会核对您的回答!谢谢 :) - Cc Dd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接