Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Yggdrasil

Не знаете где спросить? Спрашивайте тут
zyx
Сообщения: 1
Зарегистрирован: Чт июл 16, 2026 7:15 pm

Yggdrasil

Сообщение zyx »

Yggdrasil
Приветствую всех.
Отцы, подскажите плизз как поднять Yggdrasil на Devuan sysvinit?
Дефолтная установка пакета даёт неудобоваримый /usr/lib/systemd/system/yggdrasil.service
Заранее благодарен.
Аватара пользователя
root:#
Site Admin
Сообщения: 2105
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 59 раз
Поблагодарили: 28 раз

Yggdrasil

Сообщение root:# »

zyx писал(а): Чт июл 16, 2026 7:32 pmПриветствую всех.
Привет!
На Devuan (sysvinit) пакет yggdrasil при установке ставит только systemd-сервис, который не работает, потому что systemd нет. Нужно вручную сделать init-скрипт для sysvinit

Код: Выделить всё

#!/bin/sh
### BEGIN INIT INFO
# Provides:          yggdrasil
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Yggdrasil network daemon
# Description:       Yggdrasil is an IPv6 peer-to-peer mesh network.
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
NAME=yggdrasil
DAEMON=/usr/bin/yggdrasil
CONFFILE=/etc/yggdrasil.conf
PIDFILE=/var/run/$NAME.pid
LOGFILE=/var/log/$NAME.log
USER=_yggdrasil
GROUP=_yggdrasil

[ -x "$DAEMON" ] || exit 0

# Если каталог /var/run не tmpfs (Devuan чаще с tmpfs), /run или /var/run
# PID-файл должен лежать на tmpfs, поэтому /var/run подходит.
[ -d /var/run ] || mkdir -p /var/run

start() {
    echo -n "Starting $NAME: "
    start-stop-daemon --start --background --make-pidfile \
        --pidfile "$PIDFILE" \
        --chuid "$USER:$GROUP" \
        --exec "$DAEMON" -- -useconffile "$CONFFILE" \
        >> "$LOGFILE" 2>&1
    echo "done."
}

stop() {
    echo -n "Stopping $NAME: "
    start-stop-daemon --stop --pidfile "$PIDFILE" --retry 5
    rm -f "$PIDFILE"
    echo "done."
}

status() {
    if [ -f "$PIDFILE" ] && kill -0 $(cat "$PIDFILE") 2>/dev/null; then
        echo "$NAME is running (pid $(cat $PIDFILE))"
    else
        echo "$NAME is not running"
        return 1
    fi
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        sleep 1
        start
        ;;
    status)
        status
        ;;
    *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
esac

exit 0