Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[Gelöst:]Shellscript als Short-cut unter LXDE starten

Alles rund um die möglichen Desktopumgebungen wie KDE, Gnome, XFCE usw. die es unter Linux gibt

Moderator: Moderatoren

Antworten
Freddie62
Guru
Guru
Beiträge: 1548
Registriert: 24. Jan 2006, 14:21

[Gelöst:]Shellscript als Short-cut unter LXDE starten

Beitrag von Freddie62 » 14. Jul 2017, 16:54

Ich möchte gerne ein Shellscript (abgelegt unter usr/local/bin) unter LXDE als Shortcut (Meta + "j") starten. Unter KDE geht das problemlos.
Programme (Midori, Thunderbird, etc.) lassen sich problemlos als Shortcut (nach entsprechendem Eintrag in $home/.config/openbox/lxde-rc.xml) starten. Nur bei Shellscripten geht das anscheinend nicht. Dann kommt die Fehlermeldung: "Kindprozess /sh konnte nicht ausgeführt werden."
Auch als ".desktop"-Datei geht es nicht. Vom Desktop aus läßt sich das Script allerdings per ".desktop"-Datei problemlos starten.
Jemand eine Idee?

CU Freddie
Zuletzt geändert von Freddie62 am 17. Jul 2017, 13:28, insgesamt 1-mal geändert.
Leap 42.3, Kernel: 4.4, LXDE. Schleppi: Dell Latitude 5520 mit Win7 Prof./Leap42.3-X64, Kernel: 4.14.15-5.g9a6fca5-default, LXDE

Werbung:
Gräfin Klara
Hacker
Hacker
Beiträge: 335
Registriert: 23. Jun 2008, 20:51

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von Gräfin Klara » 14. Jul 2017, 18:29

Wie sieht zur Zeit jene Zeile in der .desktop Datei aus, mit der du das script starten willst?

Freddie62
Guru
Guru
Beiträge: 1548
Registriert: 24. Jan 2006, 14:21

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von Freddie62 » 14. Jul 2017, 20:08

Das Script startet ein "*.jar" -File:

Code: Alles auswählen

#! /bin/bash
cd /home/Daten2/freddie/Dokumente/E+L/JavaCanmon
java -jar JCanmon.jar
Die .desktop-Datei sieht so aus:

Code: Alles auswählen

[Desktop Entry]
Encoding=UTF-8
Exec=sh /home/freddie/Scripts/Java-Canmon.sh
Icon=/home/Daten2/freddie/Dokumente/E+L/JavaCanmon/internet.png
MimeType=
Name[de_DE]=Java-Canmon
Name=Java-Canmon
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
Direktes Eintragen von "java -jar /home/Daten2/freddie/Dokumente/E+L/JavaCanmon/JCanmon.jar" ind der <command></command> Zeile im xml-file funktioniert übrigens auch nicht.
Das Script habe ich geschrieben, da das Ausführen von *.jar-Dateien als Desktop-Verknüpfung eine Zeitlang nicht funktioniert hat, das Ausführen von Scripten ging jedoch. Inzwischen geht anscheinend wieder beides.

CU Freddie
Leap 42.3, Kernel: 4.4, LXDE. Schleppi: Dell Latitude 5520 mit Win7 Prof./Leap42.3-X64, Kernel: 4.14.15-5.g9a6fca5-default, LXDE

Gräfin Klara
Hacker
Hacker
Beiträge: 335
Registriert: 23. Jun 2008, 20:51

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von Gräfin Klara » 14. Jul 2017, 21:27

Probiere das aus wenn konsole:
Exec=konsole -e /home/freddie/Scripts/Java-Canmon.sh

oder wenn lxterminal:
Exec=lxterminal --command=/home/freddie/Scripts/Java-Canmon.sh

Gruß
Gräfin Klara

abgdf
Guru
Guru
Beiträge: 3113
Registriert: 13. Apr 2004, 21:15

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von abgdf » 14. Jul 2017, 21:43

Also, ich kann Shell-Skripte per Shortcut auch ohne eine .desktop-Datei starten.
Sieht bei mir in "/home/user/.config/openbox/lxde-rc.xml" (da bei den "keybind"s) so aus:

Code: Alles auswählen

    <keybind key="A-j">
      <action name="Execute">
        <command>/usr/local/bin/yourscript</command>
      </action>
    </keybind>
"yourscript" muß ausführbar sein, das XML darf nicht irgendwo kaputt sein (was ja leicht geschieht).

abgdf
Guru
Guru
Beiträge: 3113
Registriert: 13. Apr 2004, 21:15

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von abgdf » 15. Jul 2017, 00:03

Dieses kleine Skript sollte Dir zeigen, ob Dein XML wohlgeformt ist oder wo noch Fehler sind:

Code: Alles auswählen

#!/usr/bin/perl

use warnings;
use strict;

use Cwd;
use XML::Parser;

my $filename = cwd() . "/lxde-rc.xml";
my $parser = XML::Parser->new();
$parser->parsefile($filename);
Kopiere die Datei "lxde-rc.xml" in das Verzeichnis, in das Du auch das Skript tust. Dann mußt Du das Original in "~/.config/openbox" nicht anrühren (und das Skript muß es auch nicht).

Edit: Oder als Einzeiler:

Code: Alles auswählen

cat lxde-rc.xml | perl -e 'while(<>){$a.=$_};use XML::Parser;$p=XML::Parser->new();$p->parse($a)'

Freddie62
Guru
Guru
Beiträge: 1548
Registriert: 24. Jan 2006, 14:21

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von Freddie62 » 17. Jul 2017, 13:28

Inzwischen habe ich das Problem gelöst. Anscheinend wird ein Shellscript in diesem Fall direkt ohne "./" oder "sh" davor gestartet. Dazu kam ein Problem mit dem xml-File (Beim Kopieren nicht aufgepasst). :ops:
Das Script von abgdf funktioniert allerdings nicht wirklich, da die ersten Zeilen der xml-Datei als fehlerhaft ausgegeben werden, obwohl sie im Original-xml bereits vorhanden waren.
Trotzdem Danke für die Hilfe, die mich auf den richtigen Weg gebracht hat.

CU Freddie
Leap 42.3, Kernel: 4.4, LXDE. Schleppi: Dell Latitude 5520 mit Win7 Prof./Leap42.3-X64, Kernel: 4.14.15-5.g9a6fca5-default, LXDE

abgdf
Guru
Guru
Beiträge: 3113
Registriert: 13. Apr 2004, 21:15

Re: Shellscript als Short-cut unter LXDE starten

Beitrag von abgdf » 17. Jul 2017, 15:36

Freddie62 hat geschrieben:Anscheinend wird ein Shellscript in diesem Fall direkt ohne "./" oder "sh" davor gestartet.
Ja, wie ich Dir auch angegeben hatte, muß man das "/usr/local/bin/yourscript" in der XML-Datei voll ausschreiben.
yourscript sollte natürlich als Erstes die Zeile enthalten:

Code: Alles auswählen

#!/bin/bash
Freddie62 hat geschrieben:
17. Jul 2017, 13:28
Das Script von abgdf funktioniert allerdings nicht wirklich, da die ersten Zeilen der xml-Datei als fehlerhaft ausgegeben werden, obwohl sie im Original-xml bereits vorhanden waren.
Die paar Zeilen sind zwar von mir, aber im Grunde versucht einfach das Perl-Modul "XML::Parser" mal, das XML zu parsen. Ob das geht oder ob es einen Fehler anzeigt, richtet sich nach den Kriterien in dem Modul.
"XML::Parser" wird aber weltweit eingesetzt, daher kann man schon davon ausgehen, daß die darin enthaltenen Kriterien für wohlgeformtes XML nicht ganz falsch sein dürften. Das bedeutet, es muß nicht am Skript oder Modul liegen, sondern auch Dein Original-xml könnte möglicherweise nicht wohlgeformt sein.
Bei meiner Datei wirft "XML::Parser" keinen Fehler. Mein Anfang sieht so aus:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<!-- Do not edit this file, it will be overwritten on install.
        Copy the file to $HOME/.config/openbox/ instead. -->
<openbox_config xmlns="http://openbox.org/3.4/rc">
  <resistance>
    <strength>10</strength>
    <screen_edge_strength>20</screen_edge_strength>
  </resistance>
  <focus>
    <focusNew>yes</focusNew>
    ......
Ich würde dazu raten, die Datei so zu editieren, daß "XML::Parser" keinen Fehler wirft. Und dann prüfen, ob auch LXDE damit umgehen kann. Es dürfte am besten sein, wenn beides ok ist.

Antworten