> 可以做到。
echo "text" > file
Run Code Online (Sandbox Code Playgroud)
tee 可以做到。
echo "test" | tee file
Run Code Online (Sandbox Code Playgroud)
sed不使用上述任何一种都可以做到吗?是否可以在sed不使用>或 的情况下将命令的输出保存到文件中tee?
我想在 eclipse 中调试/测试一个使用 Redis 服务器的程序,所以我决定将服务器变成用户服务以拥有运行它的特权。困扰我的是我可以启动或停止服务,但不能启用/禁用它。
我得到的错误是:
Failed to execute operation: No such file or directory
Run Code Online (Sandbox Code Playgroud)
原来的 /usr/lib/systemd/system:
[Unit]
Description=Advanced key-value store
After=network.target
[Service]
User=arkos
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
编辑并移至 /usr/lib/systemd/user:
[Unit]
Description=Advanced key-value store
[Service]
ExecStart=/usr/bin/redis-server /etc/arkos/arkos-redis.conf
ExecStop=/usr/bin/redis-cli shutdown
[Install]
WantedBy=default.target
Run Code Online (Sandbox Code Playgroud)
Systemctl 状态:
?? arkos-redis.service - Advanced key-value store
Loaded: loaded (/usr/lib/systemd/user/arkos-redis.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2015-08-25 09:19:25 UTC; 1min 55s ago
Process: 644 ExecStop=/usr/bin/redis-cli shutdown (code=exited, status=1/FAILURE)
Main PID: 736 (redis-server)
CGroup: …Run Code Online (Sandbox Code Playgroud) 以用户身份运行任何 systemd 命令时出现此错误:
admin@Xroklaus:~ $ systemctl --user list-units
Failed to get D-Bus connection: Connection refused
Run Code Online (Sandbox Code Playgroud)
如果没有用户参数,该命令运行良好。
admin@Xroklaus:~ $ systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point
sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil
sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0
...
To show all installed unit files use 'systemctl list-unit-files'.
lines 102-129/129 (END)
Run Code Online (Sandbox Code Playgroud)
并且 Dbus 正在运行。
admin@Xroklaus:~ $ ps -ef | grep dbus
message+ 443 1 0 Jan06 ? 00:00:00 /usr/bin/dbus-daemon --system --address=systemd: …Run Code Online (Sandbox Code Playgroud) 我创建了一个服务。
admin@Xroklaus:~ $ cat /etc/systemd/user/duniter.service
[Unit]
Description=Duniter node
After=network.target
ConditionPathExists=/home/folatt/.config/duniter/duniter_default/duniter.db
[Service]
Group=folatt
User=folatt
Type=forking
ExecStart=/usr/bin/duniter webstart
ExecReload=/usr/bin/duniter webrestart
ExecStop=/usr/bin/duniter stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
重新启动后,它不加载。
folatt@Xroklaus:~ $ systemctl --user status duniter.service
? duniter.service - Duniter node
Loaded: loaded (/etc/systemd/user/duniter.service; enabled)
Active: failed (Result: start-limit) since Sun 2018-01-07 20:31:43 UTC; 1min 3s ago
Process: 2212 ExecStart=/usr/bin/duniter webstart (code=exited, status=216/GROUP)
Run Code Online (Sandbox Code Playgroud)
Journalctl 提供了更多有关错误的信息。
admin@Xroklaus:~ $ sudo journalctl -p 3 --no-pager
-- Logs begin at Sun 2018-01-07 20:30:33 UTC, end at Sun 2018-01-07 20:31:49 UTC. …Run Code Online (Sandbox Code Playgroud) 我已经安装了 Arch Linux + XFCE 并在其上安装了 Eclipse Mars。
除了鼠标滚动外,它工作正常。有谁知道我应该在这个问题上寻找什么?
设置
我的调制解调器自动为至少两个设备输入错误的 ipv6 地址,导致出现 DestinationNetworkUnreachable 错误。
来自https://www.subnetonline.com的测试
IPv6 Ping Output:
PING guilder-test.eu.org(2001:983:8610:1:2239:6fcb:6144:21d2 (2001:983:8610:1:2239:6fcb:6144:21d2)) 32 data bytes
From 2001:983:8610::1 (2001:983:8610::1) icmp_seq=1 Destination unreachable: Administratively prohibited
From 2001:983:8610::1 (2001:983:8610::1) icmp_seq=2 Destination unreachable: Administratively prohibited
From 2001:983:8610::1 (2001:983:8610::1) icmp_seq=3 Destination unreachable: Administratively prohibited
From 2001:983:8610::1 (2001:983:8610::1) icmp_seq=4 Destination unreachable: Administratively prohibited
--- guilder-test.eu.org ping statistics ---
4 …Run Code Online (Sandbox Code Playgroud) 我在 LIME2 上安装了 Yunohost,就像我在 Pi3 上所做的一样,现在我遇到了两个月相同的错误(请参阅“无法启用用户服务。“无法获得 D-Bus 连接:连接被拒绝”支持“),只有这一次我已经安装了 libpam-systemd。
admin@Gildurklaus:~ $ systemctl --user list-units
Failed to get D-Bus connection: Connection refused
Run Code Online (Sandbox Code Playgroud)
同样,没有用户参数,命令运行良好。
admin@Gildurklaus:~ $ systemctl list-units
UNIT LOAD ACTIVE SUB DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File System Automount Point
sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0-rfkill1.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0/rfkil
sys-devices-platform-soc-3f201000.serial-tty-ttyAMA0-hci0.device loaded active plugged /sys/devices/platform/soc/3f201000.serial/tty/ttyAMA0/hci0
...
To show all installed unit files use 'systemctl list-unit-files'.
lines 102-129/129 (END)
Run Code Online (Sandbox Code Playgroud)
再次 Dbus 不是为我的用户运行,只是在系统范围内运行。
admin@Gildurklaus:~ $ ps -ef | grep dbus
message+ 574 …Run Code Online (Sandbox Code Playgroud)