我有这个~/.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) 我正在编写一个带有计时器的服务,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) 我试图了解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。
它实际上有什么作用?
为什么我需要它用于特定的网络模块而不是其他模块?
它会创建某种虚拟设备吗?
什么时候需要?
安全影响?
性能影响?
我有一个用 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 上的打包过程。
我有很多目录和子目录。我想从目录中递归删除一个特定文件,如果它是唯一的一个。还假设该目录中没有子目录。因此,总而言之,假设是:
结构:
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) 在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) 如何在 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) freebsd ×2
systemd ×2
arch-linux ×1
bash ×1
openbsd ×1
packaging ×1
shell-script ×1
tmux ×1
zfs ×1