Debian: systemctl enable - funktioniert nicht

  • Hey Leute, wie in meinem letzten Thread beschrieben, gehts hier immer noch um Redis. Redis läuft zwar mittlerweile ohne Probleme, nur leider lässt sich der Server nicht als Autostart einrichten, weswegen ich hier mal einen neuen Thread starte, weil es ja quasi ein anderer Fehler ist.

    Also Redis läuft ohne Probleme, lässt sich aber nicht in den Autostart integrieren:



    Ich habe mittlerweile alles Mögliche probiert und bin mit meinem Latein am Ende. Hier mal das redis.service script:



    Script liegt hier: /lib/systemd/system/redis.service


    und per symlink hier: /etc/systemd/system/redis.service



    Wenn mir wer helfen kann, oder ne Idee hat, das wäre grandios!:)

  • So, läuft alles wie geplant!

    Hier die Lösung, bzw. Erklärung.


    Unabhängig von der Fehlermeldung die enable redis ausspuckt, wird redis zum Autostart hinzugefügt, was mir aber vorher nicht aufgefallen ist, auch weil nichts davon in den logfiles auftauchte. Redis wird nie gestartet, da der Ordner /var/run/redis nicht exisitiert (da wo der socket zugänglich ist)


    Lösung hierfür: Wie anfänglich gedacht, müssen sowohl der Ordner als auch die Rechte vor jedem Start gesetzt werden. redis.service schaut nun so aus:



    knapp einen Tag arbeit, ... für nen Redis Server :/

    Naja, vielleicht hilft es ja wem!

  • Hey Mordor,


    ich arbeite seit knapp 10 Jahren mit Linux im Serverbereich, aber immer nur auf privater, hobbymäßiger Ebene, ... ganz ehrlich, ich glaub ich hab das System immer nich nicht zu 100% verstaden. 😂


    Aber du hast recht, ich hab auf jeden Fall mal wieder was gelernt! Learning by doing!


    Hinterher war mir auch klar, warum in der congig der ursprüngliche Socket Pfad /tmp/redis.sock lautet, ... da hätte man sich das ganze Theater wahrscheinlich gespart.


    Für mich aber ehrlich gesagt viel interessnater sind die Möglichkeiten, die man mit z.B. /sbin/start-stop-daemon hat. Auf jeden Fall eleganter und besser geregtl als wie bisher in manchen Fällen su user -c command 🤣😎


    Danke auf jeden Fall auch noch mal für den Link!

  • In SystemD gibt es dafür die Direktiven "RuntimeDirectory" und "RuntimeDirectoryMode" die dir den entsprechenden Ordner unter /var/run und /run anlegen.

    Siehe auch:

    https://www.freedesktop.org/so…ec.html#RuntimeDirectory=

    http://man7.org/linux/man-pages/man5/systemd.exec.5.html

    bzw. das SystemD Definition File von mightyBroccoli  https://forum.netcup.de/admini…internal-error/#post92117


    /var/run ist ein tmpfs deren Inhalt nach einem Reboot gelöscht wird.


    Edit:

    SystemD zu Nutzen um den Start-Stop-Daemon zu nutzen: gruselig. Entweder SystemD oder SysV, ersetze bitte den Aufruf des Start Stop Daemons durch die Redis-Binary direkt.


    So sähe ein gutes SystemD Skript aus (einfach durch die Redis-Sachen ergänzen)