Запустить udhcpd (busybox) с помощью Systemd?

Я бы хотел запустить службу busybox udhcpd с помощью systemd.

У меня есть простой файл /etc/udhcpd.conf:

start           192.168.8.20    #default: 192.168.0.20
end             192.168.8.254   #default: 192.168.0.254
interface       wlan0

Вот мой / lib / systemd /system/udhcpd.service

[Unit]
Description=DHCP Service

[Service]
ExecStart=/usr/sbin/udhcpd /etc/countx-udhcpd.conf
ExecStartPre=/usr/bin/ip-up.sh

[Install]
WantedBy=multi-user.target

Вот мой /usr/bin/ip-up.sh

#!/bin/sh

ip addr add 192.168.8.1 dev wlan0
ip link set wlan0 up

Когда я запускаю сценарии вручную, все работает правильно.

Но когда я запускаю сценарии с помощью systemd, это терпит неудачу.

systemctl start udhcpd

Вот что работает:

/usr/bin/udhcpd-ip-up.sh
/usr/sbin/udhcpd /etc/countx-udhcpd.conf

Кто-нибудь может заставить это работать с systemd?

1
задан 12 June 2018 в 01:16
1 ответ

Я получил эту работу с некоторыми изменениями.

Сначала мне пришлось использовать флаг -f при запуске udhcpd из systemd. Это выводит udhcpd на передний план. Хотя в этом нет никакого смысла, но это работает.

Во-вторых, мне нужно дождаться подключения к сети, прежде чем запускать это.

Ниже приведены мои исправления, которые заставляют вещи работать в /lib/systemd/system/udhcpd.service

[Unit]
Description=DHCP Service
# wait for network to come up before we run
After=network.target

[Service]
# -f means foreground--not sure why, but it works now
ExecStart=/usr/sbin/udhcpd -f /etc/countx-udhcpd.conf
ExecStartPre=/usr/bin/udhcpd-ip-up.sh

[Install]
WantedBy=multi-user.target

Все остальные файлы, указанные выше, необходимы. Они работают как есть.

0
ответ дан 4 December 2019 в 03:53

Теги

Похожие вопросы