运行 启动脚本或网络设置? Ubuntu 17.04

Run script on sturtup or do network sertup? Ubuntu17.04

大家好,

这个问题可能很愚蠢,我试过 google,但对我没有用。

所以我需要的是 运行 在启动接口 eno1 和 eno2 并获得它们的 IP 后启动脚本:

#!/bin/sh
ip rule add from 172.28.1.0/24 pref 200 lookup 201
ip route add default via 172.28.1.1 dev eno1 table 201
ip rule add from 172.28.2.0/24 pref 200 lookup 202
ip route add default via 172.28.2.1 dev eno2 table 202
ip route add default nexthop via 172.28.1.1 dev eno1
ip route append default nexthop via 172.28.2.1 dev eno2
ip route flush cache
systemctl start apache2

这是为了设置一些网络参数。 所以我尝试了:

1。添加命令到 /etc/rc.local

不工作,因为我没有/etc/rc.本地文件

2。将此脚本添加为启动应用程序

如果需要 sudo 权限则无法正常工作(不知道如何 运行 在启动时使用 sudo 编写脚本)

3.Add 一个初始化脚本(已过时)

也没有用,我想是因为像以前的情况一样有 sudo 权限。

评论:我做systemctl start apache2,因为系统启动后,apache2退出并出现下一个错误:

no listening sockets available, shutting down

编辑: 我创建了一个服务 - net_conf.service:

[Unit]
After=network-online.target

[Service]
ExecStart=/network_configuration/conf.sh

[Install]
WantedBy=default.target

我的脚本是conf.sh你可以在下面看到。

接下来的结果(systemctl status net_conf.service):

Oct 10 23:02:09 loraserver conf.sh[1848]: RTNETLINK answers: Network is unreachable
Oct 10 23:02:09 loraserver conf.sh[1848]: RTNETLINK answers: File exists
Oct 10 23:02:09 loraserver conf.sh[1848]: RTNETLINK answers: Network is unreachable
Oct 10 23:02:09 loraserver conf.sh[1848]: RTNETLINK answers: Network is unreachable
Oct 10 23:02:09 loraserver conf.sh[1848]: RTNETLINK answers: Network is unreachable
Oct 10 23:02:09 loraserver conf.sh[1848]: Job for apache2.service failed because the control process exited with error code.
Oct 10 23:02:09 loraserver conf.sh[1848]: See "systemctl status apache2.service" and "journalctl -xe" for details.

编辑2: 还尝试将 -s -q --timeout=30 和 120 参数添加到 Exes 启动。不起作用。 有什么建议吗?

感谢任何帮助,提前致谢。

此致, 奥列格·索莫夫

随着 Linux 的较新版本(我认为包括 Ubuntu 自版本 15.04 以来),systemd 是用于启动系统服务的系统。通常,使用 systemd,您会创建一个服务文件,该文件将 运行 您的脚本在 OS 的启动过程中的正确时间。

您可能会发现此文档有帮助:

https://wiki.ubuntu.com/SystemdForUpstartUsers

它详细说明了如何创建新服务,以及如何在启动时(或其他时间)将其设置为 运行。