Telegram CLI Autostart – Daemon mit Systemd erstellen

Um Telegram CLI (ComandLineInterface) produktiv nutzen zu können, ist es manchmal praktisch, wenn es beim Systemstart automatisch startet bzw. wenn man mit den Systemkommandos den Daemon starten und stoppen kann. Ich habe mir einige englische Seiten zu dem Thema durchgelesen und bin dann ziehmlich schnell zum Erfolg gekommen. Es gibt auf der Entwicklerseite eine Anleitung für ein init Script, unten ist mein Vorgehen beschrieben mit einem Betriebssystem auf systemd Basis. Bei mir ist es Raspbian bzw. Debian 8.0.

 

Vorarbeiten:

Zuerst sollten wir einen User für Telegram CLI anlegen.

adduser --system --no-create-home telegramd

Systemd Script:

Ich nehme als Editor joe, Ihr könnt natürlich auch jeden anderen Texteditor nehmen.

joe /etc/systemd/system/telegram.service

[Unit]
Description=Telegram CLI systemd service
Wants=network-online.target
After=network-online.target

[Service]
ExecStart=/usr/local/bin/telegram-cli -d -vvvv -P 2391 -L /var/log/telegram-cli.log -W -s /etc/telegram-cli/test.lua
ExecStop=/usr/bin/pkill -9 -e telegram-cli

Das Unitfile speichern und mit dem unteren Befehl den Autostart aktivieren.

systemctl enable telegram

Jetzt kann man die bekannten start/stop Befehle benutzen, um telegram zu starten oder zu beenden.

systemctl start telegram
systemctl stop telegram

Da der Daemon unter einem eingenen User läuft, ergeben sich einige Probleme mit den richtigen Verzeichnissen und den Rechten. Daher müssen wir noch einige Anpassungen vornehmen.

mkdir /var/lib/telegram # Homedirectory erstellen
cp -R /root/.telegram-cli/ /var/lib/telegram/  # Configdateien an die richtige Stelle kopieren
joe /etc/passwd  # /var/lib/telegram/ als home eintragen
chown telegramd:root /var/lib/telegram/ -R # richtigen Besitzer setzen

Eigentlich sollte jetzt per systemctl start telegram  der Daemon gestartet werden können. Wenn nicht, dann im Logfile mal nachschauen welche Meldungen drin stehen.

tail -f /var/log/telegram-cli.log