标签: systemd

如何让 systemd-networkd 忽略 DHCP 推送的默认路由?

我希望 systemd-networkd 忽略 DHCP 在一个接口上推送的默认路由。

\n

我的工作设置有 3 个网络接口。\n每个接口都有一个 .network 文件:

\n

eth0:互联网

\n
[Match]\nName=eth0\n[Network]\nDHCP=yes\nDNS=127.0.0.1\n
Run Code Online (Sandbox Code Playgroud)\n

eth1:本地测试网络

\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\n
Run Code Online (Sandbox Code Playgroud)\n

eth2:与主站点的 VPN 路由器连接。

\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\n
Run Code Online (Sandbox Code Playgroud)\n

vnet0:桥接接口,不连接到虚拟机的真实接口

\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\n
Run Code Online (Sandbox Code Playgroud)\n

正如你所看到UseRoutes=false的,我仍然在 eth2 网络上有一个默认路由:

\n
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)

networking dhcp systemd

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

如何在 udev 规则中使用 ENV{SYSTEMD_USER_WANTS}= ?

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

linux udev systemd

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

如何查看所有用户的 systemd 计时器?

我有一些用户在 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 sudo systemd

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

使用 systemd 在启动时在 VLAN 上启动 ppp

我正在用 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)

pppoe vlan pppd systemd

5
推荐指数
0
解决办法
3844
查看次数

systemctl 休眠并重新启动?

我在不同的卷上有两个 Linux 映像,以及一个与它们分开的 /boot 分区。我希望我的用户能够在晚上休眠他们的“桌面 Linux 操作系统”,重新启动到“渲染场 Linux 操作系统”。

早上,“渲染场操作系统”将关闭并将系统引导回休眠的桌面 Linux 会话。

我想我可以使用一个脚本来启用此功能,该脚本修改 grub2 配置然后运行systemctl hibernate​​,这让我完成了大部分工作,但实际上我需要系统不仅仅是休眠正在运行的操作系统;我需要它来休眠正在运行的操作系统,然后重新启动。

似乎没有任何规定让 systemctl 休眠然后重新启动。它可以做其中之一或另一个。

我怎样才能做到这一点?

linux grub2 systemd

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

如何使用 systemd 列出(并重试)失败的安装

我有一些安装点由于缺少依赖项而加载失败(底层文件系统尚未解密)。Asystemctl status <mountpoint>显示如下:

\n\n
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'\n
Run Code Online (Sandbox Code Playgroud)\n\n

是否有一个systemctl命令可以列出此类失败的安装尝试,并且最好重新尝试所有这些尝试?

\n\n

我尝试过,systemctl --failed但没有在列表中看到这些挂载。\n到目前为止我发现的所有其他命令都需要我指定挂载点,这正是我首先真正想从系统中了解的内容。

\n\n

额外问题:是否有系统方式自动触发这些重试?我的意思是,依赖关系清楚地记录在安装单元中,并且(然后解密的)依赖关系的安装也是通过 systemd 完成的,因此它可以知道重新尝试那些依赖的安装。

\n

linux mount systemd

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

停止 systemd 作业和所有激活器

我想停止由套接字或文件或其他什么激活的作业,例如

# systemctl stop rsyslog
Warning: Stopping rsyslog.service, but it can still be activated by:
  syslog.socket
Run Code Online (Sandbox Code Playgroud)

除了追踪所有激活器并单独停止之外,有没有办法将其与所有激活器一起停止?我不想永久禁用该作业,只需暂时停止它,直到它明确启动为止。

linux systemd

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

GRUB 启动检测失败

我将映像从 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)

linux ubuntu grub2 systemd ubuntu-20.04

5
推荐指数
0
解决办法
5290
查看次数

在linux中的gnome下合上盖子时如何使用systemd hybrid-sleep而不是挂起?

如何让 GNOME 3 在合上盖子或使用菜单中的挂起时使用 Systemd 混合睡眠而不是挂起?

linux gnome hibernate sleep systemd

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

systemd-timesyncd:显示 NTP 状态

使用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)

linux ntp systemd

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

标签 统计

systemd ×10

linux ×8

grub2 ×2

dhcp ×1

gnome ×1

hibernate ×1

mount ×1

networking ×1

ntp ×1

pppd ×1

pppoe ×1

sleep ×1

sudo ×1

ubuntu ×1

ubuntu-20.04 ×1

udev ×1

vlan ×1