我希望 systemd-networkd 忽略 DHCP 在一个接口上推送的默认路由。
\n我的工作设置有 3 个网络接口。\n每个接口都有一个 .network 文件:
\n[Match]\nName=eth0\n[Network]\nDHCP=yes\nDNS=127.0.0.1\nRun Code Online (Sandbox Code Playgroud)\n[Match]\nName=eth1\n\n[Network]\nAddress=192.168.78.1/24\nIPForward=ipv4\nIPMasquerade=yes\nDHCPServer=yes\n\n[DHCPServer]\nPoolOffset=10\nPoolSize=100\nEmitDNS=yes\nDNS=192.168.78.1\nRun Code Online (Sandbox Code Playgroud)\n[Match]\nName=eth2\n\n[Network]\nDHCP=ipv4\n\n[Route]\nGateway=10.3.10.1\nDestination=10.100.102.0/24\nMetric=0\n\n[Route]\nGateway=10.3.10.1\nDestination=10.3.13.0/24\nMetric=0\n\n[Route]\nGateway=10.3.10.1\nDestination=10.3.14.0/24\nMetric=0\n\n[DHCP]\nUseDNS=false\nSendHostname=true\nUseRoutes=false\nRouteMetric=2000\nRun Code Online (Sandbox Code Playgroud)\n[Match]\nName=vnet0\n\n[Network]\nAddress=192.168.77.1/24\nIPForward=ipv4\nIPMasquerade=yes\nDHCPServer=yes\n\n[DHCPServer]\nPoolOffset=10\nPoolSize=100\nEmitDNS=yes\nDNS=192.168.77.1\nRun Code Online (Sandbox Code Playgroud)\n正如你所看到UseRoutes=false的,我仍然在 eth2 网络上有一个默认路由:
default via 192.168.178.1 dev eth0 proto dhcp src 192.168.178.52 metric 1024 \ndefault via 10.3.10.1 dev eth2 proto dhcp src 10.3.10.196 metric 2000 \n10.3.10.0/24 dev eth2 proto kernel scope link src 10.3.10.196 \n10.3.10.1 dev eth2 proto dhcp scope link src 10.3.10.196 metric 2000 \n192.168.77.0/24 dev …Run Code Online (Sandbox Code Playgroud) docked.target我想在我的用户级别设置一个systemd。这个想法是运行一些服务来配置我的外部显示器。
我目前的规则是:
SUBSYSTEM=="usb", ACTION=="add", ENV{ID_VENDOR}=="17ef", ENV{ID_MODEL}=="100a", SYMLINK+="tp_mini_dock", TAG+="systemd", ENV{SYSTEMD_USER_WANTS}="docked.target"
Run Code Online (Sandbox Code Playgroud)
该规则很好地被检测到(我可以dev-tp_mini_dock.device在停靠时看到)。
然后我把这个放进去~/.config/systemd/user/docked.target(也尝试过/etc/systemd/user但没有运气):
[Unit]
Description=Docked to ThinkPad Mini Dock
BindTo=dev-tp_mini_dock.device
Run Code Online (Sandbox Code Playgroud)
但这不会在我停靠时启动。但是,如果我docked.target在对接时手动启动,则当我断开对接时它会按预期停止。
但是,如果我使用ENV{SYSTEMD_WANTS}="docked.target"文件并将其放入 中/etc/systemd/system/docked.target,目标会在我停靠时按预期启动。那么问题是我的用户级实例不知道系统级服务/目标。
有什么想法吗?我在网上看到了一些其他问题,其中一个几乎与我的完全一样:https://bbs.archlinux.org/viewtopic.php ?pid=1600019
我有一些用户在 Ubuntu 和 Arch Linux systemd 系统上以 linger 模式运行。这意味着,即使用户没有登录系统,他们的计时器也可以运行。作为 root 用户,我如何才能看到所有活动的计时器,包括所有用户的计时器?
systemctl list-timers会给我系统计时器。如果我以用户身份登录,systemctl --user list-timers则会向我提供该用户的计时器。但是,如果我跑步sudo -u anotheruser systemctl --user list-timers,那么我会得到Failed to connect to bus: No such file or directory。
我正在用 Linux 盒子替换我的消费者路由器/AP。我的消费者路由器通过标记 VLAN 上的 PPPoE 链路拨入我的 ISP。我配置了一个工作设置,其中ppp使用标记的设备enp7s0.201,并且它运行良好,直到我重新启动。重新启动时,ppp在创建 VLAN 设备之前出现,并立即终止。
[me@router ~]$ sudo journalctl -b | egrep 'ppp|enp7s0'
Feb 11 03:01:22 router kernel: r8169 0000:07:00.0 enp7s0: renamed from eth0
Feb 11 03:01:23 router systemd[1]: ppp@centurylink.service: Unit is bound to inactive unit sys-subsystem-net-devices-enp7s0.201.device. Stopping, too.
Feb 11 03:01:23 router systemd-networkd[444]: /etc/systemd/network/enp7s0.201.netdev:5: Unknown section 'VLAN'. Ignoring.
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0.201: netdev ready
Feb 11 03:01:25 router systemd-networkd[444]: enp7s0: IPv6 successfully enabled
Feb 11 03:01:25 …Run Code Online (Sandbox Code Playgroud) 我在不同的卷上有两个 Linux 映像,以及一个与它们分开的 /boot 分区。我希望我的用户能够在晚上休眠他们的“桌面 Linux 操作系统”,重新启动到“渲染场 Linux 操作系统”。
早上,“渲染场操作系统”将关闭并将系统引导回休眠的桌面 Linux 会话。
我想我可以使用一个脚本来启用此功能,该脚本修改 grub2 配置然后运行systemctl hibernate,这让我完成了大部分工作,但实际上我需要系统不仅仅是休眠正在运行的操作系统;我需要它来休眠正在运行的操作系统,然后重新启动。
似乎没有任何规定让 systemctl 休眠然后重新启动。它可以做其中之一或另一个。
我怎样才能做到这一点?
我有一些安装点由于缺少依赖项而加载失败(底层文件系统尚未解密)。Asystemctl status <mountpoint>显示如下:
root@mymachine:/sharedfolders# systemctl status /sharedfolders/Multimedia\n\xe2\x97\x8f sharedfolders-Multimedia.mount - Mount shared folder Multimedia to /sharedfolders/Multimedia\n Loaded: loaded (/etc/systemd/system/sharedfolders-Multimedia.mount; enabled; vendor preset: enabled)\n Active: inactive (dead)\n Where: /sharedfolders/Multimedia\n What: /srv/dev-disk-by-label-data/Multimedia\n\nJul 09 19:13:58 mymachine systemd[1]: Dependency failed for Mount shared folder Multimedia to /sharedfolders/Multimedia.\nJul 09 19:13:58 mymachine systemd[1]: sharedfolders-Multimedia.mount: Job sharedfolders-Multimedia.mount/start failed with result 'dependency'\nRun Code Online (Sandbox Code Playgroud)\n\n是否有一个systemctl命令可以列出此类失败的安装尝试,并且最好重新尝试所有这些尝试?
我尝试过,systemctl --failed但没有在列表中看到这些挂载。\n到目前为止我发现的所有其他命令都需要我指定挂载点,这正是我首先真正想从系统中了解的内容。
额外问题:是否有系统方式自动触发这些重试?我的意思是,依赖关系清楚地记录在安装单元中,并且(然后解密的)依赖关系的安装也是通过 systemd 完成的,因此它可以知道重新尝试那些依赖的安装。
\n我想停止由套接字或文件或其他什么激活的作业,例如
# systemctl stop rsyslog
Warning: Stopping rsyslog.service, but it can still be activated by:
syslog.socket
Run Code Online (Sandbox Code Playgroud)
除了追踪所有激活器并单独停止之外,有没有办法将其与所有激活器一起停止?我不想永久禁用该作业,只需暂时停止它,直到它明确启动为止。
我将映像从 16.04 更新到 ubuntu 20.04,并将 grub 升级到 grub2。从系统日志中,我观察到以下错误:
Oct 19 10:30:10 host-1 systemd[1]: Starting GRUB failed boot detection...
Oct 19 10:30:10 host-1 grub-editenv[533]: /usr/bin/grub-editenv: error: cannot open `/boot/grub/grubenv.new': No such file or directory.
Oct 19 10:30:10 host-1 systemd[1]: grub-initrd-fallback.service: Main process exited, code=exited, status=1/FAILURE
Oct 19 10:30:10 host-1 systemd[1]: grub-initrd-fallback.service: Failed with result 'exit-code'.
Oct 19 10:30:10 host-1 systemd[1]: Failed to start GRUB failed boot detection.
Run Code Online (Sandbox Code Playgroud)
我该如何解决同样的问题?
我的 grub 分区的内容:
/boot/grub# ls
device.map fonts gfxblacklist.txt grub.cfg grubenv grub-mkconfig_lib grub-multi-install i386-pc …Run Code Online (Sandbox Code Playgroud) 如何让 GNOME 3 在合上盖子或使用菜单中的挂起时使用 Systemd 混合睡眠而不是挂起?
使用systemd-timesyncd 时,如何显示更详细的 NTP 状态?具体来说,我正在寻找我正在使用的对等方的 IP 地址(大概是通过 DHCP 获得的)。
这并没有显示我在寻找什么:
# timedatectl status
Local time: Wed 2016-01-13 09:59:13 EST
Universal time: Wed 2016-01-13 14:59:13 UTC
RTC time: Wed 2016-01-13 14:59:13
Time zone: America/New_York (EST, -0500)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2015-11-01 01:59:59 EDT
Sun 2015-11-01 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2016-03-13 01:59:59 EST …Run Code Online (Sandbox Code Playgroud)