小编THX*_*THX的帖子

仅打印第一列唯一的行

我正在寻找一种对列表进行排序并打印所有行的方法,其第一列仅出现一次 - 即仅匹配第一列。例如,我有一个文件,其中第一列是路径,第二列包含“类型”

/path/foo/1 footsy
/path/foo/1 barsy
/path/foo/X barsy
/path/bar/2 footsy
/path/bar/2 barsy
/path/foo/Y footsy
Run Code Online (Sandbox Code Playgroud)

(文件实际排序为-k1,1)

现在,我只想提取像

/path/foo/X barsy
/path/foo/Y footsy
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用 awk 的某种方式,在那里我必须存储前一行并将前一行的第一个字段与当前行中的相应字段进行比较。但我还不知道如何完成它:(我试图调整在另一个问题中找到的解决方案,但它并没有像预期的那样工作

awk '{
  prev=$0; path=$1; type=$2
  getline
  if ($1 != $path) {
    print prev
  }
}'
Run Code Online (Sandbox Code Playgroud)

awk text-processing

5
推荐指数
1
解决办法
1781
查看次数

systemd:用户服务在启动时以目标默认/图形但不是多用户启动

我试图在启动时启动在我的用户上下文中运行的服务,该服务不适用于多用户作为目标,而只能使用default,即graphics

我为我的用户和服务启用了延迟

sudo loginctl enable-linger $USER
systemctl --user enable $SERVCE
systemctl --user start $SERVICE
Run Code Online (Sandbox Code Playgroud)

但是,重新启动后该服务没有启动。

该服务最初针对多用户

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

即,导致服务链接

$HOME/.config/systemd/user/multi-user.target.wants/SERVICE.service
Run Code Online (Sandbox Code Playgroud)

与预期不同,该服务未在启动时启动。

仅在将目标更改为默认值后

WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)

(当前为图形)并重新启用该服务,该服务自动启动。

但是,我假设图形多用户的下游作为目标,即“稍后”,或者?

是什么阻止了服务以多用户启动?

linux systemd

3
推荐指数
1
解决办法
1924
查看次数

具有不同计时器的 systemd 模板单元

我有几项工作,我希望 systemd 定期启动它们,但彼此之间有偏移。

由于这些工作非常相似,我想用一个 systemd 模板单元来涵盖所有这些工作。

但是,由于这些作业可能会导致一些负载,因此我想理清启动时间并为每个实际服务使用不同的 systemd 计时器。

在基于模板创建服务期间,有没有办法移交额外的参数(作为特定的开始时间)?

systemctl start MyGeneralService@Specific1.{AdditionalArgument??}.service
Run Code Online (Sandbox Code Playgroud)

或者有没有办法读取稍后在单元模板中使用的变量

[Service]
MyVar = {?XYZ?} /etc/MyService.d/%i.conf {?XYZ?}

[Timer]
OnCalendar=*:0/{?MyVar?}
Run Code Online (Sandbox Code Playgroud)

或者有什么方法可以在模板中定义派生服务的依赖关系?即,以动态(??)方式派生服务的Before=/After=

Specific2
[Service]
After=MyGeneralService@{?%i-1?}.service
Run Code Online (Sandbox Code Playgroud)

systemd

3
推荐指数
1
解决办法
3835
查看次数

标签 统计

systemd ×2

awk ×1

linux ×1

text-processing ×1