网络连接成功后执行脚本

mek*_*zek 4 18.04

如何在成功建立互联网连接后自动执行脚本。

我尝试将脚本放在 if-up.d 中,但它不起作用,而且我找不到任何有关如何执行此操作的文档。如果我手动执行该脚本就可以工作。

有人可以帮忙吗?

小智 6

Stephen Boston 提到您可以使用 systemd 服务来自动化它。

在/etc/systemd/system下创建一个服务文件,并将其命名为FILENAME.service

将其粘贴到您的文件中:

[Unit]
Description=YOUR DESCRIPTION
Requires=network-online.target 
After=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/YOUR/PATH/TO/SCRIPT

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

type=oneshot 表示只会执行一次。

require=network-online.target这一行表明该服务需要服务网络在线,并且仅在=network-online.target之后执行

可以看到network.service之后启动了服务(test.service)

可以看到network.service之后启动了服务(test.service)

要完成它,您需要使用以下命令启用该服务

sudo systemctl enable FILENAME.service
Run Code Online (Sandbox Code Playgroud)

检查您的服务是否已启用

sudo systemctl is-enabled FILENAME.service
Run Code Online (Sandbox Code Playgroud)

您当然可以手动启动或停止服务

sudo systemctl start/stop/restart/status FILENAME.service
Run Code Online (Sandbox Code Playgroud)

提示:图片创建于systemd-analyze plot > output.svg