Beim Start ausgefuehrtes Script funktioniert nicht

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 31.10.2016 18:38:31

Ich gruesse euch.
Da ich gerne eine Person bin die viel mit Caps schreibt, dabei auch schnell, kommt es immer wieder zu Problemen mit diesem Linux Caps Delay Bug.
Ich habe dafuer ein Programm gefunden, welches auch funktioniert wenn ich es direkt via Terminal ausfuehre, aber via Autostart funktioniert das Ding nicht, bzw. wird noch nichtmal gestartet. Was kann das sein?


So sieht das Script aus:

Code: Alles auswählen


#!/bin/sh


sleep 5
USER="fabian"
DIR="/home/fabian/.config/autostart/"
 
###### Caps start/stop script ######
 
case "$1" in
start)
su $USER -c "${DIR}/caps.sh start"
;;
stop)
su $USER -c "${DIR}/caps.sh stop"
;;
restart)
su $USER -c "${DIR}/caps.sh restart"
;;
status)
su $USER -c "${DIR}/caps.sh status"
;;
*)
echo "Usage: {start|stop|restart|status}" >&2
exit 1
;;
esac
exit 0


Die Datei heisst caps.sh und liegt in /etc/init.d/
Ich habe erstmal versucht das ganze via update-rc.d defaults hinzuzufuegen, jedoch hat das nicht geklappt.
Dann mal ueber den Autostart Manager von GNOME, aber auch das hat nicht funktioniert, das Script wird einfach nicht gestartet.
Wie kann ich vorgehen damit das ganze funktioniert?

MfG

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von pferdefreund » 01.11.2016 10:46:09

was hat nicht geklappt ? - Fehlermeldungen ? Ist da schon Systemd im Einsatz - da gibt es ja normalerweise die Startskripte nicht mehr.
Läuft das Skript bei manuellem Start als Root.

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 02.11.2016 10:23:54

pferdefreund hat geschrieben:was hat nicht geklappt ? - Fehlermeldungen ? Ist da schon Systemd im Einsatz - da gibt es ja normalerweise die Startskripte nicht mehr.
Läuft das Skript bei manuellem Start als Root.
Also aus irgendeinem Grund wird es einfach nicht gestartet.
Wenn ich es manuell als root in der Konsole starte ist das kein Problem, dann laeuft es auch problemlos, aber als Autostart halt nicht

Habe jedoch vergessen was anzugeben
Das Script caps.sh was dort angegeben ist, sieht wie folgt aus

Code: Alles auswählen

#!/bin/sh
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"



pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von pferdefreund » 02.11.2016 13:57:07

Das sieht mir fast danach aus, dass das schon läuft, bevor überhaupt X da ist. Bau mal ein
echo "test" > /home/fabian/test ein und wenn die Datei da ankommt, läuft es - funktioniert aber vermutlich nicht, weil kein X da ist.
Sowas gehört in den Autostart der entsprechenden Desktopumgebung. Eventuell kann man das mit einem echten Systemd-Start auch
auf die Reihe bringen, so man X als Voraussetzung definiert. Wie - keine Ahnung - ich hab noch sysvinit.

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 02.11.2016 21:29:04

Also mit dem echo habe ich probiert, und es wird tatsaechlich eine Datei namens echo erstellt, also wird das Schrkipt schonmal gestartet, aber wie kann ich weiter vorgehen damit ich das auch richtig zum lauifen kriege?

pferdefreund
Beiträge: 3792
Registriert: 26.02.2009 14:35:56

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von pferdefreund » 03.11.2016 09:22:20

Dazu müssten wir wissen, welche Desktop-Umgebung verwendet wird und wie die gestartet wird - per gdm, startx oder was auch immer.
Je nachem wie, unterscheiden sich die Vorgehensweisen. Soweit mir bekannt, haben KDE und Gnome dafür sowas wie einen Autostart-Ordner aber als Icewm-Nutzer kenne ich mich damit nicht aus.

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

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von MSfree » 03.11.2016 09:31:17

pferdefreund hat geschrieben:Dazu müssten wir wissen, welche Desktop-Umgebung verwendet wird und wie die gestartet wird - per gdm, startx oder was auch immer.
Nein. Programme, die einen Xserver voraussetzen wie xkbcomp, benötigen zwingend einen in der graphischen Umgebung eingelogten Benutzer. Es ist also vollkommen aussichtslos, solche Programme mit irgendeinem Startskript (egal obe SysVinit oder systemd) zu starten.Das Verhalten ist also auch komplett unabhängig von der Desktopumgebung.

Das ganze läßt sich nur im Zuge eines Autostartskripts durchführen, das von Desktop (Gnome, KDE, wasauchimmer) beim Login ausgeführt wird.

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 03.11.2016 13:20:38

Also mit dem GNOME AUtostart hat es leider auch nicht funktioniert.

LEtztendlich will ich nur dass dieses SCript irgenwdie ausgefuehrt wird, aber das ist scheinbar um einiges komplexer als gedacht

Code: Alles auswählen

!/bin/sh
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"

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

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von MSfree » 03.11.2016 13:41:52

Knogle hat geschrieben:LEtztendlich will ich nur dass dieses SCript irgenwdie ausgefuehrt wird, aber das ist scheinbar um einiges komplexer als gedacht
Woher weißt du, daß das Skript nicht ausgeführt wird?

Code: Alles auswählen

!/bin/sh
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"
Ich könnte wetten, daß dein Skript ausgeführt wird. Allerdings sollte das Ergebnis von
xkbcomp... | sed ... |
nicht in eine Kommentarzeile (die, die mit dem # anfängt) gepiped werden sonder vielleicht doch nach xkbcomp?

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 03.11.2016 16:14:48

GUte Frage, habe das Script von hier http://askubuntu.com/questions/574740/caps-lock-delay mit dem PRoblem mit der VErzoegerung von CAps

DAs Script funktioniert halt nur irgendwie wenn ich es im terminal eingebe, also /etc/init.d/caps start eingebe, ueber Autostart kriege ich das nicht hin
ODer gibt es noch andere Scripts um das PRoblem mit der VErzögerung von CAps zu beheben?

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

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von MSfree » 03.11.2016 17:05:47

Knogle hat geschrieben:GUte Frage, habe das Script von hier http://askubuntu.com/questions/574740/caps-lock-delay mit dem PRoblem mit der VErzoegerung von CAps
So, wie du das Skript hier gepostet hast, kann es sowieso nicht funktionieren. Wenn man schon cut'n'pastet, dann bitte vollständig. Ausserdem steht in dem von dir verlinkten Text:
This needs to be started as part of your desktop session (do not use Upstart for example).
Upstart ist eines der 3 gängigen Initialisierungssystem, die anderen beiden heißen SysVInit und systemd. Es wird also nie und nimmer mit Upstart, SysVInit oder systemd funktionieren. Es funktioniert ausschließlich mit dem Autostart deine Desktopsession (staht ja auch da).
also /etc/init.d/caps start eingebe
Wie gesagt, das Skript gehört nicht nach /etc/init.d und kann von dort auch gar nicht funktionieren.
ueber Autostart kriege ich das nicht hin
Richtig, es kann so auch nicht funktionieren. In der ersten Zeile fehlt ein #-Zeilchen:

Code: Alles auswählen

#!/bin/sh
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 03.11.2016 21:12:19

Das # habe ich beim EInfuegen gerade vergessen :D
Also ich habe das jetzt als caps.sh in /home/name/.config/autostart eingefuegt, und dann in GNOME bei Autostart das eingetragen und als Befehl steht da dann: /home/name/.config/autostart/caps.sh
Dennoch geht es leider nicht

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

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von MSfree » 03.11.2016 21:43:30

Knogle hat geschrieben:Also ich habe das jetzt als caps.sh in /home/name/.config/autostart eingefuegt,
Naja, hast du das Skript mal "zu Fuß" in einem Terminalfenster ausgeführt?

Was gibt

Code: Alles auswählen

ls -l ~/config/autostart
aus?

Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Knogle » 03.11.2016 21:58:58

MSfree hat geschrieben:
Knogle hat geschrieben:Also ich habe das jetzt als caps.sh in /home/name/.config/autostart eingefuegt,
Naja, hast du das Skript mal "zu Fuß" in einem Terminalfenster ausgeführt?

Was gibt

Code: Alles auswählen

ls -l ~/config/autostart
aus?
Zu Fuss laeuft es problemlos, ich schicke gleich den Output von dem Befehl

Benutzeravatar
Taomon
Beiträge: 627
Registriert: 08.03.2011 16:34:38
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Beim Start ausgefuehrtes Script funktioniert nicht

Beitrag von Taomon » 14.12.2016 16:51:24

Erstell dafür eine desktop datei.

Code: Alles auswählen

#!/usr/bin/env xdg-open

[Desktop Entry]
Name=caps.sh
Exec=/voller/Pfad/zum/skript
Icon=wenn du willst ebenfalls voller Pfad
Type=Application
Categories=Utility;
StartupNotify=false
Terminal=false
Hidden=false
X-GNOME-Autostart-enabled=true
Bei X-GNOME-Autostart mußt Du auf Deinen desktop ändern. Speicher die Datei mit der Endung .desktop ab.


Versuchs mal so.

Gruß Taomon
Bitte gelegentliche Schreibfehler übersehen. Ich habe ADHS. Danke.

Antworten