小编ras*_*spi的帖子

使用户 systemd 服务持久化

我有这个~/.config/systemd/user/weechat.servicesystemd 服务,它运行良好,但在系统升级后,该进程被终止了,这是它以前没有做的。当与 SSH 会话断开连接时,该进程会立即终止。

[Unit]
Description=Weechat IRC Client (in tmux)
After=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux -2 -u new-session -d -s irc /usr/bin/weechat
ExecStop=/usr/bin/tmux kill-session -t irc

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

地位:

% systemctl --user status weechat.service
? weechat.service - Weechat IRC Client (in tmux)
   Loaded: loaded (/home/<user>/.config/systemd/user/weechat.service; enabled; vendor preset: enabled)
   Active: active (exited) since Thu 2017-10-05 22:54:54 EEST; 18h ago
  Process: 504 ExecStart=/usr/bin/tmux -2 -u new-session -d -s irc /usr/bin/weechat (code=exited, status=0/SUCCESS)
 Main PID: 504 (code=exited, status=0/SUCCESS)
   CGroup: /user.slice/user-1000.slice/user@1000.service/weechat.service …
Run Code Online (Sandbox Code Playgroud)

arch-linux tmux systemd

8
推荐指数
1
解决办法
2341
查看次数

强制 systemd 计时器立即运行?

我正在编写一个带有计时器的服务,WorkingDirectory.service文件出错了。计时器按预期运行。既然我已经重新访问了.service文件,我如何强制运行服务的计时器?

我试过了:

$ systemctl --user enable $(pwd)/mycollector.service
$ systemctl --user start mycollector.timer
$ systemctl --user reload mycollector.timer
Run Code Online (Sandbox Code Playgroud)

$ systemd-run --user mycollector.timer
Run Code Online (Sandbox Code Playgroud)

但它仍在等待:

$ systemctl --user list-timers
NEXT                         LEFT       LAST PASSED UNIT              ACTIVATES
Thu 2019-06-20 23:53:28 UTC  43min left n/a  n/a    mycollector.timer mycollector.service
Run Code Online (Sandbox Code Playgroud)

systemd

8
推荐指数
1
解决办法
4291
查看次数

rc.conf 中的 'cloned_interfaces' 有什么作用?

我试图了解cloned_interfacesFreeBSD 的rc.conf真正作用。

手册页说:

cloned_interfaces

(str) 设置为要在此主机上创建的可克隆网络接口列表。ifconfig(8) create通过设置create_args_<interface>变量,可以将进一步的克隆参数传递给每个接口的命令 。如果使用sticky关键字指定接口名称,则即使rc.d/netif使用stop参数调用脚本,接口也不会被销毁 。这在重新配置接口而不破坏它时很有用。中的条目 cloned_interfaces会自动附加到network_interfaces 配置中。

这并没有提供任何关于它做什么的有用信息。例如if_bridge,它由、if_tap和 使用if_epair

它实际上有什么作用?
为什么我需要它用于特定的网络模块而不是其他模块?
它会创建某种虚拟设备吗?
什么时候需要?
安全影响?
性能影响?

freebsd configuration network-interface

7
推荐指数
1
解决办法
5290
查看次数

在 OpenBSD 上打包二进制版本

我有一个用 go 编写的小应用程序,我已经将它交叉编译到各种操作系统上。

目前,我Makefile生成的myapp-VERSION-OS-CPUARCH.tar.gz包用作源二进制包,用于发布为.deb, .rpm, PKGBUILD, FreeBSD 二进制版本.tgz等,其结构如下:

bin/myapp
LICENSE
README.md
Run Code Online (Sandbox Code Playgroud)

我找不到有关如何将其打包到官方 OpenBSD.tgz二进制发布包中的教程/方法/示例。pkg_create似乎是命令,但我找不到示例。

那么如何在 OpenBSD 上制作二进制发布包,以便包含所有元数据,例如维护者、应用程序类别、体系结构等?

这里的想法是不将软件包发送到任何官方端口存储库。它只是简单地为您自己的机器打包一个版本,并了解 OpenBSD 上的打包过程。

packaging openbsd

7
推荐指数
1
解决办法
377
查看次数

从目录中删除特定文件(如果它是唯一的)

我有很多目录和子目录。我想从目录中递归删除一个特定文件,如果它是唯一的一个。还假设该目录中没有子目录。因此,总而言之,假设是:

  • 文件名是 README.TXT(不区分大小写)
  • 找到该文件的目录中没有其他文件或目录

结构:

 mkdir usecase
 cd usecase
 mkdir destroy_this
 touch destroy_this/readme.txt
 mkdir do_not_destroy_this
 touch do_not_destroy_this/readme.txt
 touch do_not_destroy_this/something-else.txt
 mkdir do_nothing
 cd do_nothing
 mkdir rm_this
 touch rm_this/README.TXT
 cd ..
 mkdir do_nothing_here
 cd do_nothing_here
 mkdir has_sub_dir
 touch README.TXT
 cd ..
Run Code Online (Sandbox Code Playgroud)

运行上面的将导致这个树结构:

$ tree .
.
`-- usecase
    |-- destroy_this
    |   `-- readme.txt
    |-- do_not_destroy_this
    |   |-- readme.txt
    |   `-- something-else.txt
    |-- do_nothing
    |   `-- rm_this
    |       `-- README.TXT
    `-- do_nothing_here
        |-- has_sub_dir
        `-- README.TXT
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所得到的:

find . -type f -iname "readme.txt" …
Run Code Online (Sandbox Code Playgroud)

shell-script

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

使用 FreeBSD ZFS zroot(分区上的 ZFS)时更换磁盘?

root上使用 ZFS 时如何用新磁盘替换损坏的磁盘?

我有 4 个使用 zroot 的磁盘 RAIDZ2 池。这意味着 ZFS 在单独的分区上运行,而不是使用整个磁盘。我没有找到任何关于在这种情况下如何更换磁盘的文档,或者信息已被弃用。池是由安装自动生成的。

Camcontrol设备列表:

% doas camcontrol devlist -v
scbus0 on mpt0 bus 0:
<>                                 at scbus0 target -1 lun ffffffff ()
scbus1 on ahcich0 bus 0:
<>                                 at scbus1 target -1 lun ffffffff ()
scbus2 on ahcich1 bus 0:
<>                                 at scbus2 target -1 lun ffffffff ()
scbus3 on ahcich2 bus 0:
<ST2000DM001-1CH164 CC43>          at scbus3 target 0 lun 0 (pass0,ada0)
<>                                 at scbus3 …
Run Code Online (Sandbox Code Playgroud)

freebsd zfs

4
推荐指数
1
解决办法
1348
查看次数

在 bash 中修改和重新排序命令行参数

如何在 bash 中重新排序命令行参数?在这种情况下,我只想将第一个 arg ( $1)移动到某个位置并设置$1为空值。

这是我的尝试:

#!/bin/bash

FIRST=$1
$1=

echo $* $FIRST 
Run Code Online (Sandbox Code Playgroud)

给出:

% ./test.sh foo bar quux
./test.sh: line 4: foo=: command not found
foo bar quux foo
Run Code Online (Sandbox Code Playgroud)

它应该输出:

bar quux foo
Run Code Online (Sandbox Code Playgroud)

bash

4
推荐指数
1
解决办法
1294
查看次数