• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

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

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
 
OP
F

Freddie62

Guru
Das Script startet ein "*.jar" -File:
Code:
#! /bin/bash
cd /home/Daten2/freddie/Dokumente/E+L/JavaCanmon
java -jar JCanmon.jar
Die .desktop-Datei sieht so aus:
Code:
[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
 
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
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:
    <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
Dieses kleine Skript sollte Dir zeigen, ob Dein XML wohlgeformt ist oder wo noch Fehler sind:
Code:
#!/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:
cat lxde-rc.xml | perl -e 'while(<>){$a.=$_};use XML::Parser;$p=XML::Parser->new();$p->parse($a)'
 
OP
F

Freddie62

Guru
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). :eek:ps:
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
 

abgdf

Guru
Freddie62 schrieb:
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:
#!/bin/bash
Freddie62 schrieb:
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:
<?xml version="1.0" encoding="UTF-8"?>

<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.
 
Oben