NEWS
go2rtc installieren und einrichten
-
@marc_el_k sagte in go2rtc installieren und einrichten:
In Schritt eins muss man eine Datei hochladen und ausführen und ich scheitere bereits daran, weil ich im RPI nicht weiß, wo man die Datei am besten ablegt und ausführt, damit ich mir meine ioBroker Installation nicht zerschieße.
Für sowas ist /usr/local/bin vorgesehen.
-
@thomas-braun Vielen Dank und wie lässt sich eine DAtei dorthin uploaden? Ich nutze Putty und habe sie auf meinem Windows PC.
-
Mit scp z.B.
Oder du lädst die direkt im Zielsystem per curl oder wget runter.
Rechte entsprechend erforderlich. -
@thomas-braun Okay, soweit hat alles geklappt. Ich habe nun die Config Datei angepasst und kann die Datei ausführen mit
/usr/local/bin $ ./go2rtc_linux_arm64Wenn ich nun Putty beende, ist allerdings nichts mehr erreichbar. Die Adresse ist die HOST_IP:1984
Wie kann ich denn die Datei dauerhaft ausführen?
Ansonsten muss ich sagen, dass es super funktioniert!
-
@marc_el_k sagte in go2rtc installieren und einrichten:
Wie kann ich denn die Datei dauerhaft ausführen?
Mit
screen
geht sowas.
Damit kann man ein Programm im Terminal im Hintergrund laufen lassen und kann den user ausloggen. -
@marc_el_k
hallo freut mich das du nun soweit bist.
tut mir leid das ich nicht rascher zurückschreben konnte, aber ich bin in der arbeit.es gibt mehrere methoden um ein script im hintergrund laufen zu lassen.
ich habe es aber nun anders gelöst.
Der sinn dahinter:
hin und wieder kommt es vor das sich mein Server neustartet, teils gewollt, teils weil er leider hengen geblieben ist. wie auch immer...... mein Wunsch ist es, wenn ich den server neustarte, dass alle programme, scripts und ähnliches von selbst laufen.
So auch go2rtc.So mache ich das:
CRONTAB.
falls du das nicht kennst: Ich kenne es aus der Website programmierung. Es geht darum scripte zu einer bestimmten Zeit automatisch auszuführen. So auch beim Neustart
Wie funktioniert es:- Crontab m uss installier sein (ich glaube das ist aber bei den meistn linux dist. bereits standardmäßig)
- gestartet wird das ganze mit "crontab -e".
- es öffnet sich in putty die crontab datei, in welcher die scripte und die entsprechende uhrzeit angegeben werden können.
- man gibt an, dass beim restart einfach die go2rrtc dateiausgeführt wird. der Vorteil: ALLE Scripts laufen im Hintergrund, welche über crontab gestartet werden. Das würde bei dir s aussehen
@reboot /usr/local/bin $ ./go2rtc_linux_arm64
möchtest du ein script immer um 15:30 ausführen schaut das so aus:
30 15 * * * /usr/local/bin $ ./go2rtc_linux_arm64
das kannst du sogar soweit abändern, das es nur an bestimmten wochentagen erfolgt. Dafür musst du nur die Werte abändern. Hier aber eine Hilfe, welche das erleichtert: https://crontab.guru/hier noch zwei scripte, welche ich nutze, da ich go2rtc manchmal neu starten möchte.
zuvor muss jedoch der laufende go2rtc process beendet werden:
das script zum beenden:#!/usr/bin/bash kill -9 $(pgrep -f 'go2rtc')
hier das script zum starten
#!/usr/bin/bash ./go2rtc_linux_arm64
ich arbeite gerade daran, dass ich die scripts mittels exec direkt aus dem iboker starte, aber leider funktioniert das noch nicht ganz, wegen pfad problemen.....
achja, crontab kannst du auch mit sudo crontab -e ausführen, aber da hatte ich probleme mit dem speicherot der automatisch angelegten ymal datei von go2rtc
-
mein Wunsch ist es, wenn ich den server neustarte, dass alle programme, scripts und ähnliches von selbst laufen.
Ich würde es in systemd als Service anlegen. Dann kann man das easy in den Boot-Prozess reinhängen.
-
@thomas-braun
okay, danke ist die crontab idee schlecht? es funktioniert nämlich einwandfreiich verzweifle eher an der scriptausführung über den iobroker. aber dazu habe ich schon ein thema eröffnet
-
Ja , cronjob sind nicht dafür gedacht, sondern dienen dazu wiederkehrende Aufgaben zu erledigen, nicht zum Start von Diensten. Dafür hat man sich sowas wie aktuell systemd oder sysinitv oder sonstige init-Systeme ausgedacht.
-
@thomas-braun said in go2rtc installieren und einrichten:
systemd oder sysinitv oder sonstige init-Systeme ausgedacht.
ja, systemd wollte ich versuchen und ich habe es jetzt nochmal versucht, aber ich scheitere am gleichen problem, wie in meinem anderen thread, nämlich dem absoluten pfad
meine service datei enthält:
[Unit] Description=starting go2rtc server [Service] User=odroid WorkingDirectory = </usr/local/bin/go2rtc/> ExecStart=</usr/local/bin/go2rtc_linux_arm64> Restart=always [Install] WantedBy=multi-user.target
fehlermeldung beim start....
in der log datei:Aug 15 18:13:27 odroidc2 systemd[1]: /etc/systemd/system/go2rtc.service:6: WorkingDirectory= path is not absolute: </usr/local/bin/go2rtc/> Aug 15 18:13:27 odroidc2 systemd[1]: go2rtc.service: Unit configuration has fatal error, unit will not be started. lines 1-16/16 (END)
bisher habe ich die datei am schreibtisch gehabt unter:
/home/odroid/Schreibtisch/go2rtc/go2rtc_linux_arm64gleiche fehlermeldung wenn ich unter pfad:
/home/odroid/Schreibtisch/go2rtc/go2rtc_linux_arm64
schreibe -
Wie kommst du an die spitzen Klammern im Pfad? Die haben da nix zu suchen.
-
@thomas-braun sagte in go2rtc installieren und einrichten:
Ja , cronjob sind nicht dafür gedacht, sondern dienen dazu wiederkehrende Aufgaben zu erledigen, nicht zum Start von Diensten. Dafür hat man sich sowas wie aktuell systemd oder sysinitv oder sonstige init-Systeme ausgedacht.
Mich würde interessieren wie es mit Systemd funktioniert. Gibt es dafür eine verständliche Anleitung?
-
@marc_el_k sagte in go2rtc installieren und einrichten:
Gibt es dafür eine verständliche Anleitung?
Moin,
ganz viele im WWW
Z.B. https://www.suse.com/de-de/support/kb/doc/?id=000019672
Wer sucht, der findet
VG
Bernd -
@thomas-braun
mein beitrag fehlt plötzlich. aber kurz version, es klappt alles -
@jumbo125 sagte in go2rtc installieren und einrichten:
es klappt alles
So soll es sein. Vielleicht kannst du @Marc_el_K ja noch ein paar Tips geben.
-
@marc_el_k
funktioniert es bei dir?
sonst gib bescheid -
@dp20eic Habe ich mir durchgelesen, aber tatsächlich hab ich es noch nicht gecheckt.
-
@marc_el_k sagte in go2rtc installieren und einrichten:
@dp20eic Habe ich mir durchgelesen, aber tatsächlich hab ich es noch nicht gecheckt.
Moin,
komme gerade vom
Santiano
Konzert, bin erst morgen wieder am Start.VG
Bernd -
@Marc_el_K
okay, hier nochmal die erklärung:- go2rtc_linux_.... runterladen. entweder über einen normalen browser oder über die Konsole, bspw. mit wget
- datei dort hin verschieben, wo sie ungestört bleiben kann bspw. usr/local/bin (bei mir liegt sie am desktop/Schreibtisch in einem unterordner)
- rechte vergeben, d.h. in den ordner wechseln, wo die datei nun liegt und mittels
chmod +x go2rtc_xxx_xxx
die rechte vergeben. Es geht auch mit dem vollständigen Pfad.
wechsel aber ev. trotzdem mittelscd dein/pfad
zum entsprechenden ordner.
So.... wenn du die rechte vergeben hast und dich im ordner befindest, kannst du mittels
./go2rtcxxxx
die datei ausführen.
klappt das, dann geht es weiter mit dem eintragen der go2rtcxxxx datei in die service scripte.
also:- falls du die datei ausgeführt hast, siehst du in der konsole die rückmeldungen, das der dienst läuft. schließe den laufenden prozess (terminal schließen, oder strg + c drücken)
2 nun wechsel zu dem ordner, in dem die verweise liegen, welche scripts, zum systemd dienst gehören.
cd /etc/systemd/system/
- nun befindest du dich im ordner /etc/systemd/system/
erstelle hier nun eine Datei mittels:
sudo nano go2rtc.service
- hier trage dann folgende daten ein:
[Unit] Description=starting go2rtc server [Service] User=odroid WorkingDirectory = der/pfad/zur/go2rtc-datei/aber/nur/den/ordner/indem/die/Datei/liegt ExecStart= der/Pfad/zur/datei/selbst/go2rtc_xxxxxxx Restart=always [Install] WantedBy=multi-user.target
- starte nun den server dienst neu, damit dein gerade erzeugter verweis auch geladen wird:
sudo systemctl daemon-reload
- nun kannst du das script über den zuvor erstellen verweis über systemd starten:
sudo systemctl start go2rtc.service
oder auch stoppen:
sudo systemctl stop go2rtc.service
- nun fügen wir noch das script zum systemd autostart, damit es beim neustart des pc auch gleich startet:
sudo systemctl enable go2rtc.service
falls du es aus der liste der autostart programme wieder löschen möchtest:
sudo systemctl disable go2rtc.service
hilft das?
-
Und wenn man ein Verzeichnis aus dem $PATH verwendet kann man das ganze auf direkt aufrufen.
Auf deinem Desktop liegt das verkehrt/ungünstig.
Wenn es schon im home eines Users liegen soll dann verwendet man dafür~/.local/bin