Kommandozeile[n] bei Systemstart

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 23.05.2016 10:09:15

Hallo,

ich versuche gerade mehrere Kommandozeilen/-programme beim Systemstart laufen zu lassen, und zwar:

Code: Alles auswählen

redshift -l [Ortskoordinaten] # redshift ist ein Programm, dass die Farbtemperatur so einstellt, dass es zum Sonnenstand passt

xrandr --output eDP1 --brightness 1.0 # Damit wird die Helligkeit meines internen Monitors auf max. gesetzt. Warum auch immer ist der beim Systemstart immer ausgeschaltet. Ich habe einen externen angeschlossen, der als Primärer Monitor dient

setxkbmap de # Das Programm Keepassx kann die Autotypefunktion nicht richtig durchführen, wenn diese Einstellung nicht gesetzt ist
Das Programm redshift starte ich immer über Startprogramme im Optimierungswerk. Dazu habe ich ein Bash-Skript in /home/user/.redshift angelegt und eine Desktop Application. Das funktioniert sogar!
Der Rest jedoch nicht. Ich hatte zunächst die beiden Kommandos direkt in die rc.local rein geschrieben -> Kein Effekt. Dann habe ich ein 'sleep 2s' bzw. sogar ein 'sleep 10s' vorangestellt, weil ich vermutet habe, dass die rc.local ausführt, noch bevor ich angemeldet bin, was vielleicht ein Problem sein könnte, aber das hat auch nicht geholfen.
Und dann eben beides in ein eigenes Bash-Skript rein geschrieben und diese in die rc.local rein geschrieben, auch das hilft nicht.
Inzwischen hatte ich gemerkt, dass der 2. Befehl gar nicht mehr tut, vielleicht wegen redshift?
Crontab habe ich auch ausprobiert, tut jedoch ebenfalls nicht.

Falls ihr mir helfen könnt, freue ich mich über jeden Vorschlag. Ich bin gerne auch für Alternativen offen, es muss nicht mit diesen Befehlen funktionieren! Wichtig ist nur, dass beim Systemstart:
  • Beide Bildschirme maximal hell sind
    Redshift läuft
    Ich die Autotype Funktion von Keepassx nutzen kann
Danke schon im voraus für eure Mühen :).

Viele Grüße
besinnugslos

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Kommandozeile[n] bei Systemstart

Beitrag von hikaru » 23.05.2016 10:17:58

redshift läuft kontinuierlich und blockiert damit die Shell. D.h., wenn du danach noch Befehle ausführen willst, dann musst du es in den Hintergrund schicken, indem du z.B. ein & an den Befehl anfügst.

besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Re: Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 23.05.2016 10:41:54

Hallo hikaru,

vielen Dank für deine Antwort. Meine redshift.sh sieht jetzt so aus:

Code: Alles auswählen

#!/bin/bash

redshift -l [Ortkoordinaten] &
Das hilft leider nicht. Beim ersten Systemstart wurde ein Fehler der rc.local angezeigt und der Start wurde um 10s verzögert, da ich noch ein sleep 10s drin hatte.
Danach Wurden mehrere Sachen versucht zu stoppen, ich konnte nicht all zu viel machen, war also nicht im graphischen Modus. Genaue Fehler kann ich leider nicht nennen, das ging zu schnell.
Habe den PC abgeschossen und dann neu gestartet. Selbe Situation wie davor, redshift wird zwar gestartet, der Rest jedoch nicht.

Benutzeravatar
hikaru
Moderator
Beiträge: 13594
Registriert: 09.04.2008 12:48:59

Re: Kommandozeile[n] bei Systemstart

Beitrag von hikaru » 23.05.2016 10:56:49

redshift funktioniert nur auf einem laufenden X-Server. Wenn die rc.local ausgeführt wird, läuft der aber noch nicht. Am sinnvollsten wäre es wohl, redshift über den Autostartmechanismus deines Desktops zu starten, oder über dein X-Startscript.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Kommandozeile[n] bei Systemstart

Beitrag von MSfree » 23.05.2016 10:57:15

besinnungslos hat geschrieben:Beim ersten Systemstart wurde ein Fehler der rc.local angezeigt.
Redshift hat nichts in rc.local zu suchen.

Redshift setzt voraus, daß man sich graphisch angemeldet hat. Nur dann hat Redshift auch Zugriff auf den laufenden X-Server. Du mußt es also in die Autostart-Funktion deines Desktops packen, damit es läuft.

besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Re: Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 23.05.2016 11:03:53

besinnungslos hat geschrieben:Das Programm redshift starte ich immer über Startprogramme im Optimierungswerk. Dazu habe ich ein Bash-Skript in /home/user/.redshift angelegt und eine Desktop Application. Das funktioniert sogar!
Wie erwähnt ist redshift nicht in der rc.local. Stattdessen habe ich ein Skript angelegt, dass das Programm startet. In /usr/share/applications ist dann eine redshift.desktop eingetragen. Gestartet wird das Programm über Optimierungswerk->Startprogramme.
Was genau passiert, wenn ich das Programm da eintrage weiß ich jedoch nicht, muss ich gestehen.
Die redshift.sh sieht folgendermaßen aus:

Code: Alles auswählen

#!/bin/bash

redshift -l [Ortkoordinaten] &
und ist ausführbar gemacht.
die redshift.desktop sieht so aus:

Code: Alles auswählen

[Desktop Entry]
Version=1.0
Name=Redshift
Exec=/home/user/.redshift/redshift.sh
Icon=/home/user/.redshift/redshift_logo.png
Terminal=false 
Type=Application
Categories=Display;Monitor

TomL

Re: Kommandozeile[n] bei Systemstart

Beitrag von TomL » 23.05.2016 12:17:58

besinnungslos hat geschrieben:Gestartet wird das Programm über Optimierungswerk->Startprogramme.
So rein aus Neugier würde mich die Lösung auch interessieren.... nur habe ich im Moment keine Vorstellung davon, was das Wort "Optimierungswerk" im Zusammenhang mit Debian bedeuten könnte :roll: Dieser Begriff ist mir bisher noch nie bei Debian untergekommen.....welchen Desktop hast Du installiert? Und welches Debian?

besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Re: Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 23.05.2016 12:25:22

Optimierungswerk ist mir auch bisschen suspekt, aber eigentlich ist es das hier:

https://wiki.gnome.org/action/show/Apps ... eTweakTool

Wie der Name bereits verrät benutze ich Gnome 3 bzw. eben die Standard Oberfläche von Debian Jessie (8.4).

Edit: Das ganze ist übrigens Standardmäßig installiert und bietet einige Optionen, die es in den Einstellungen nicht zu finden gibt.

TomL

Re: Kommandozeile[n] bei Systemstart

Beitrag von TomL » 23.05.2016 12:48:51

besinnungslos hat geschrieben:Optimierungswerk ist mir auch bisschen suspekt, aber eigentlich ist es das hier:
Danke, habs gefunden.... Optimierungswerkzeug heisst es vollständig.... :?

TomL

Re: Kommandozeile[n] bei Systemstart

Beitrag von TomL » 23.05.2016 15:10:16

So... das war eigentlich relativ einfach zu lösen......

1. Verschiebe den Desktop-Starter redshift.desktop in Dein home-Dir und passe danach die Rechte an.... natürlich mit dem richtigen User-Namen:

Code: Alles auswählen

mv /usr/share/applications/redshift.desktop /home/thomas/.config/autostart/redshift.desktop
chown thomas:thomas /home/thomas/.config/autostart/redshift.desktop
2. Ändere den Desktop-Starter in einer Zeile ab:

Code: Alles auswählen

Terminal=true
BTW, ist der Eintrag "user" bei exec und icon so korrekt? Heisst der angemeldete User tatsächlich "user"?

3. Füge als zweite Zeile diese Zeile in Dein Script redshift.sh ein, direkt unterhalb von "#!/bin/bash":

Code: Alles auswählen

echo "Script $0 von $USER gestartet!" | systemd-cat -t "`basename $0`" -p info
Wenn Du das Script jetzt einmal von Hand startest, kannst Du sofort im Journal die Bestätigung sehen, dass es wirklich gestartet wurde. Und zwar mit:

Code: Alles auswählen

journalctl | grep redshift
Einen gleichen Eintrag (allerdings mit aktueller Uhrzeit) musst Du sehen, wenn das Script automatisch nach der Anmeldung durchgeführt wurde. Wenn kein Eintrag erfolgt ist, ist noch was faul.

besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Re: Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 23.05.2016 15:49:42

ähm. Ich glaube, dass ich mich nicht richtig ausgedrückt habe:

redshift läuft und lief auch schon die ganze Zeit ordentlich, und so wie es soll. Was nicht läuft/lief sind die Befehle

Code: Alles auswählen

xrandr --output eDP1 --brightness 1.0

setxkbmap de
Den 2. Befehl habe ich gerade testweise mal in die redshift.sh reingeschrieben, was zwar nicht schön ist, aber es funktioniert. Mit xrandr funktioniert das nicht.

Eigentlich hätte ich die beiden Befehle gerne in der rc.local, da passiert aber nichts, wenn ich sie da reinschreibe.
Mit einem vorangestellten @reboot in crontab reinzuschreiben hat auch nicht funktioniert.

OT: Ja, mein Nutzername ist wirklich user. Habe zu oft ausversehen Codeschnipsel kopiert und gepostet, in denen mein Name als Nutzername drin ist und das wollte ich nicht ^^

TomL

Re: Kommandozeile[n] bei Systemstart

Beitrag von TomL » 23.05.2016 16:09:04

besinnungslos hat geschrieben:ähm. Ich glaube, dass ich mich nicht richtig ausgedrückt habe:

redshift läuft und lief auch schon die ganze Zeit ordentlich, und so wie es soll. Was nicht läuft/lief sind die Befehle

Code: Alles auswählen

xrandr --output eDP1 --brightness 1.0
setxkbmap de
Dann wäre es vielleicht gut, wenn Du einfach eindeutige Namen und Bezeichnungen verwenden würdest und das Problem präziser beschreiben würdest. Ansonsten kann Dich kein Mensch verstehen und alle raten nur rum. Ich habe verstanden, dass es ein Script redshift.sh gibt, welches beim Login diese 3 Befehle ausführen soll:

Code: Alles auswählen

redshift -l [Ortskoordinaten]
xrandr --output eDP1 --brightness 1.0
setxkbmap de
Dann habe ich verstanden, dass das das Script redshift.sh manuell gestartet funktioniert, aber eben nicht automatisch beim Login. Um zu kontrollieren, ob es beim Login über den Desktop-Starter überhaupt gestartet wird, habe ich dir einen Log-Eintrag als Beispiel gezeigt. Was daran nicht "schön" ist, verstehe ich nicht... schau dir das "journal" an, dann siehst Du, dass Meldungen für alle Programme quasi obligatorisch ist. Das das in der rc.local nicht funktionieren kann, auch darauf wurde schon hingewiesen.... zu dem Zeitpunkt gibts noch keinen user-bezogenen xserver.

Also... was funktioniert nicht....?... welche Maßnahmen hast Du jetzt aktuell durchgeführt...?... wird das Script redshift.sh im User-Autostart gestartet oder nicht? Wenn ja, ist das erst mal ok. Wenn nicht, hast Du die Ursache, warum xrand und setxkbmap nicht funktionieren. Wenn es jedoch gestartet wurde, was Du mit meinem Vorschlag im Log nachsehen kannst, müssen auch die anderen Befehle ausgeführt werden... es sei denn, sie sind fehlerhaft.... aber auch dafür würde ich im Log nachsehen.

geier22

Re: Kommandozeile[n] bei Systemstart

Beitrag von geier22 » 24.05.2016 01:20:39

Was dein KeepassX betrifft, hilft vielleicht dieser Thread weiter:
viewtopic.php?f=2&t=149761#p993037

Ansonsten kann ich nicht sorecht nachvollziehen, wie du Programme startest.
redshift liegt in /usr/bin/redshift
Also genügt es, über die Startprogramme

Code: Alles auswählen

gnome-session-properties 
ein neues hinzuzufügen.
dann wird automatisch die entsprechnede .desktop-Datei erzeugt und in /.config/autostart/ abgelegt.
Anschliessend (oder gleich beim Erzeugen des Starters) kannst du eventuell die Zeile
EXEC=
modifizieren.
In deinem Fall würde das so aussehen:
EXEC=redshift -l [Ortkoordinaten] &

für xrandr solltest du genauso vorgehen.

Einfach das erstellte Skript

Code: Alles auswählen

#!/bin/sh
xrandr --output eDP1 --brightness 1.0
in den Autostart packen.

besinnungslos
Beiträge: 31
Registriert: 14.06.2015 12:16:07

Re: Kommandozeile[n] bei Systemstart

Beitrag von besinnungslos » 24.05.2016 18:42:35

Also redshift und Keepassx funktionieren wie sie sollen, alles top.
Ich habe jetzt das Problem, dass

Code: Alles auswählen

xrandr --output eDP1 --brightness 1.0
nur kurz die Bildschirmhelligkeit auf den Wert setzt und danach wieder auf den alten Wert stellt...

geier22

Re: Kommandozeile[n] bei Systemstart

Beitrag von geier22 » 24.05.2016 22:39:30

Ich selbst habe keine Erfahrung mit xrandr, da mein Lappi netter weise nach ein paar mal einstellen per Hand sich das gemerkt hat.
Hab aber gerade mal mit Debianxbacklight rumgespielt das bringt zumindest bei mir (uralt Extensa 7630EZ) dauerhafte Effekte in der Bildschirmhelligkeit (% vom Max-Wert)

Code: Alles auswählen

 $ xbacklight -get
77.777778

abdunkeln:

Code: Alles auswählen

 $ xbacklight -set 50
$ xbacklight -get
44.444444
=schön dunkel :lol:

...vielleicht mal einen Versuch wert

edit:
Ein ausführlicher Artikel zu diesem Thema:
https://wiki.archlinux.org/index.php/backlight

Antworten