【问题标题】:What does %H:%i.pid do in a .service file?%H:%i.pid 在 .service 文件中做了什么?
【发布时间】:2017-05-26 23:44:03
【问题描述】:

好的,我一直在寻找所有地方,但找不到它在做什么。下面是 .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 使用的配置文件。 % 的东西被 systemd 取代。
  • @Barmar 应该改成什么标签而不是 bash?
  • 我刚改成systemd

标签: linux systemd


【解决方案1】:

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

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

【讨论】:

  • 难怪我找不到。一旦它允许我,我会检查你的答案!谢谢你:)
猜你喜欢
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-01
  • 2017-01-27
  • 1970-01-01
相关资源
最近更新 更多