NEWS
[gelöst] Befehl als root ausführen oder Rechte ändern?
-
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
schaut alles nach ` aus
und das ist IMHO falsch
-
Dann würde das Skript doch gar nicht laufen. Zum Verständnis nochmal:
homebridge@raspberrypi:/var/homebridge $ /etc/init.d/power_mqtt restart Stopping power_mqtt../etc/init.d/power_mqtt: Zeile 51: kill: (17305) - Die Operation ist nicht erlaubt .......... Not stopped; may still be shutting down or shutdown may have failed Unable to stop, will not attempt to start homebridge@raspberrypi:/var/homebridge $ sudo /etc/init.d/power_mqtt restart Stopping power_mqtt.. Stopped Starting power_mqtt homebridge@raspberrypi:/var/homebridge $
-
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
Zum Verständnis nochmal:
dann änder doch mal
kill `get_pid`
inkill 'get_pid'
Der Fehler kann sich auch auf den Bereich nach demkill
beziehen, weil der gesamte Befehl so nicht zulässig ist -
pi@raspberrypi:/etc/init.d $ sudo ./power_mqtt restart Stopping power_mqtt.../power_mqtt: Zeile 51: kill: get_pid: Die Argumente m?ssen Prozess- oder Jobbezeichnungen sein. .......... Not stopped; may still be shutting down or shutdown may have failed Unable to stop, will not attempt to start pi@raspberrypi:/etc/init.d $
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
kill: get_pid: Die Argumente m?ssen Prozess- oder Jobbezeichnungen sein.
ich sehe da keine Anführungszeichen
Mit dem Rest der Fehlermeldung stimme ich überein.ist denn 'get_pid' ein Job?
-
@homoran @waterchill Mit
get_pid
wird wohl die Funktion in Zeile 21 aufgerufen. Das selbe passiert in Zeile 26. Ich bin jetzt auch nicht so der bash-Spezialist, aber braucht man da überhaupt Apostrophe? -
@dr-bakterius sagte in Befehl als root ausführen oder Rechte ändern?:
aber braucht man da überhaupt Apostrophe?
da bin ich auch nicht so fit und das wäre meine nächste Frage gewesen, aber er meckert ja auch ohne sie
-
Ich habe das Skript nicht geschrieben. Wer sich die ANleitung durchlesen will, die gibt es hier:
https://infinityflow.ch/raspberry-pi-ant/#comment-1651
Wie gesagt das ganze funktioniert ja auch, ich möchte eben nur das Skript zu einer bestimmten Zeit ausführen lassen. Das ist im Prinzip alles.
-
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
Ich habe das Skript nicht geschrieben. Wer sich die ANleitung durchlesen will, die gibt es hier:
finde da das Skript gar nicht erst
-
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
ich möchte eben nur das Skript zu einer bestimmten Zeit ausführen lassen.
Und warum dann über ioBroker und nicht per cron?
-
@homoran sagte in Befehl als root ausführen oder Rechte ändern?:
und das ist IMHO falsch
für dich zum Lernen
root@iobroker:/opt/iobroker# export test=/bin/bash root@iobroker:/opt/iobroker# echo basename $test basename /bin/bash root@iobroker:/opt/iobroker# echo 'basename $test' basename $test root@iobroker:/opt/iobroker# echo `basename $test` bash root@iobroker:/opt/iobroker#
-
@fastfoot sagte in Befehl als root ausführen oder Rechte ändern?:
für dich zum Lernen
Danke!
aber das mit dem kill wäre dann:
pi@raspberrypi:/opt/iobroker $ echo basename `test` basename
-
Bin ich grad dabei. Müsste dann so passen oder?
*/2 16-20 * * * sudo /etc/init.d/power_mqtt restart
Jede zweite Minute von 16-20 Uhr täglich
-
was macxht dieses script überhaupt ? installiert das ein bash script als service ? oder lieg ich da falsch
-
@homoran sagte in Befehl als root ausführen oder Rechte ändern?:
aber das mit dem kill wäre dann:
das was zwischen den ticks steht wird ausgeführt und das Ergebnis zurückgegeben. es wird also get_pid ausgeführt und gibt eine PID zurück. Die wird dann gekillt
-
@fastfoot aber dieses kill wird mit iobroker ausgeführt (wurde ja so bestimmt im script unter user) - der darf doch das nicht - da müßte kill in die sudoers datei für iobroker ?
-
@waterchill der Ansatz mit sudoers war ja gar nicht so schlecht. Kannst du mal das Ergebnis von
cat /etc/sudoers.d/iobroker
posten? -
Also Grundlegend geht es um folgendes. Das ganze liest über ANT+ aus einem Pulsmesser (Brustgurt) den Puls aus schiebt das in eine mqtt und dann rüber zum iobroker mqtt Server. Damit kann ich bei Rad Indoor übern Puls zwei Xiaomi Lüfter steuern. Je höher der Puls desto mehr Drehzahl. Das ganze läuft auch wunderbar, die Lüfter hab ich so eingestellt, dass pro 10 mehr Puls 10% mehr Speed. Der Haken an der Sache ist, manchmal hängt sich das Skript auf und dann friert er auf einer Herzfrequenzzahl ein z.B. 135 oder so. Dementsprechend laufen die Lüfter dann aber regeln nicht mehr. Abhilfe: Skript Restart. Das gleiche Spielchen beginnt vor dem Sport, man muss das Skript restarten, damit das läuft. Da hab ich mir gedacht warum nicht einfach alle 2 min von 16-20 das Skript automatisch restarten lassen. So braucht man nichts mehr machen. Scheinbar geht das irgendwie in einen Sleepmode oder sowas. Ändern sich die Herzfrequenz häufig z.B. bei einem Workout dass mal langsam und schnell geht hängt sich so gut wie nie auf. Anders schauts aus wenn man konstant mal ne Stunde fährt. Da isses häufiger. Ja perfekt is die Lösung nicht, aber mir fällt nichts anderes ein.
-
interessant - könntest du dein script nicht als service installieren auf linux ebene - dann kannst du mit systemctl restart ... usw arbeiten
-
Interessant, das Ergebnis ist wie folgt:
pi@raspberrypi:~ $ cat /etc/sudoers.d/iobroker cat: /etc/sudoers.d/iobroker: Keine Berechtigung
Ich habe folgendes Eingetragen:
# User privilege specification root ALL=(ALL:ALL) ALL iobroker ALL= /etc/init.d/power_mqtt
-
@waterchill sagte in Befehl als root ausführen oder Rechte ändern?:
Interessant, das Ergebnis ist wie folgt:
pi@raspberrypi:~ $ cat /etc/sudoers.d/iobroker cat: /etc/sudoers.d/iobroker: Keine Berechtigung
Ich habe folgendes Eingetragen:
# User privilege specification root ALL=(ALL:ALL) ALL iobroker ALL= /etc/init.d/power_mqtt
das sollte man so nicht machen, besser ist eine Datei anzulegen. probiere das cat mit sudo, es geht darum ob das file überhaupt schon existiert