Hallo, ich habe das unten stehende Problem jetzt weiter eingekreist. Auch unter SuSE 10 habe ich das Problem, dass der Dialog "Befehl ausführen" nicht geschlossen wird, obwohl das Programm im Hintergrund schon längst läuft. Mir ist jetzt aber aufgefallen, dass das Script ohne Probleme funktioniert, wenn es die Endung "sh" hat, ohne die Endung gibt es das Problem. Übrigens spielt es keine Rolle, was im Script steht. Ein einfaches Script wie: #!/bin/sh cd /usr/share/tvbrowser sh tvbrowser.sh macht genauso Probleme. Kann damit jetzt jemand mehr anfangen? Ich habe beim letzten Mal, als ich hier was zu dem Thema gepostet habe, übersehen, dass Herr Haller geantwortet hat und nach der .desktop gefragt hat. Hier also .desktop-Datei: [Desktop Entry] Encoding=UTF-8 BinaryPattern=tvbrowser.sh; Name=TV-Browser Comment=TV-Browser - Eine digitale TV-Zeitschrift MimeType= Exec=tvbrowser.sh GenericName=TV-Zeitschrift Icon=tvbrowser TerminalOptions= Path= Type=Application Terminal=0 X-KDE-StartupNotify=true X-DCOP-ServiceType=Multi Categories=TV MfG Kay On Sat, 03 Sep 2005 10:30:06 +0200, Kay Patzwald <mailing-lists@gmx.de> wrote:
On Sun, 12 Jun 2005 18:14:45 +0200, Kay Patzwald <mailing-lists@gmx.de> wrote:
Hallo,
ich habe hier ein kleines Shellscript, was Probleme macht, wenn ich es mit "Befehl ausführen" ausführe. Das Programm startet im Hintergrund, der Dialog von "Befehl ausführen" verschwindet nicht. Erst wenn ich das Programm beende, bekomme ich folgende Fehlermeldung: "KDEInit konnte "rssowl" nicht starten.". Wenn ich das Programm aus dem K-Menü aufrufe oder in der Konsole starte, gibt es keine Probleme. Auch wenn ich in "Befehl ausführen" ein Häkchen bei "In Terminal starten" mache, funktioniert es, ist allerdings unschön, da die Shell ja die ganze Zeit offen sein muss.
Ich habe das gleiche Problem jetzt auch bei einem anderen Start-Skript (auch für ein RPM). Hat niemand ne Idee, wie man das Problem lösen kann?
Hier das andere Skript, was ich nicht selber geschrieben habe:
#!/bin/bash
# Based on Start-Script provided by Azureus
######## CONFIGURE ######## JAVA_PROGRAM_DIR="" # use full path to java bin dir, ex. "/usr/java/j2sdk1.4.2/bin/" PROGRAM_DIR="/usr/share/tvbrowser" # use full path to TV-Browser bin dir ##########i#################
MSG0="Loading TV-Browser:" MSG1="Starting TV-Browser..." MSG2="Java exec found in " MSG3="OOPS, your java version is too old " MSG4="You need to upgrade to JRE 1.4.x or newer from http://java.sun.com" MSG5="Suitable java version found " MSG6="Configuring environment..." MSG7="OOPS, you don't seem to have a valid JRE " MSG8="OOPS, unable to locate java exec in " MSG9=" hierarchy" MSG10="Java exec not found in PATH, starting auto-search..." MSG11="Java exec found in PATH. Verifying..."
look_for_java() { JAVADIR=/usr/java IFS=$'\n' potential_java_dirs=(`ls -1 "$JAVADIR" | sort | tac`) IFS= for D in "${potential_java_dirs[@]}"; do if [[ -d "$JAVADIR/$D" && -x "$JAVADIR/$D/bin/java" ]]; then JAVA_PROGRAM_DIR="$JAVADIR/$D/bin/" echo $MSG2 $JAVA_PROGRAM_DIR if check_version ; then return 0 else return 1 fi fi done echo $MSG8 "${JAVADIR}/" $MSG9 ; echo $MSG4 return 1 }
check_version() { JAVA_HEADER=`${JAVA_PROGRAM_DIR}java -version 2>&1 | head -n 1` JAVA_IMPL=`echo ${JAVA_HEADER} | cut -f1 -d' '` if [ "$JAVA_IMPL" = "java" ] ; then VERSION=`echo ${JAVA_HEADER} | sed "s/java version \"\(.*\)\"/\1/"` if echo $VERSION | grep "^1.[0-3]" ; then echo $MSG3 "[${JAVA_PROGRAM_DIR}java = ${VERSION}]" ; echo $MSG4 return 1 else echo $MSG5 "[${JAVA_PROGRAM_DIR}java = ${VERSION}]" ; echo $MSG6 return 0 fi else echo $MSG7 "[${JAVA_PROGRAM_DIR}java = ${JAVA_IMPL}]" ; echo $MSG4 return 1 fi }
echo $MSG1
# locate and test the java executable if [ "$JAVA_PROGRAM_DIR" == "" ]; then if ! command -v java &>/dev/null; then echo $MSG10 if ! look_for_java ; then exit 1 fi else echo $MSG11 if ! check_version ; then if ! look_for_java ; then exit 1 fi fi fi fi
# get the app dir if not already defined if [ -z "$PROGRAM_DIR" ]; then PROGRAM_DIR=`dirname "$0"` PROGRAM_DIR=`cd "$PROGRAM_DIR"; pwd` else if [ "$(echo ${PROGRAM_DIR}/*.jar)" = "${PROGRAM_DIR}/*.jar" ]; then echo "You seem to have set an invalid PROGRAM_DIR, unable to continue!" exit 1 elif ! (echo ${PROGRAM_DIR}/*.jar | grep tvbrowser.jar >/dev/null 2>&1 ); then echo "Unable to locate tvbrowser.jar in $PROGRAM_DIR, aborting!" exit 1 fi fi
echo $MSG0
cd ${PROGRAM_DIR}
echo "${JAVA_PROGRAM_DIR}java -Xms16m -Xmx128m -Djava.library.path=\"${PROGRAM_DIR}\" -jar tvbrowser.jar '$@'" ${JAVA_PROGRAM_DIR}java -Xms16m -Xmx128m -Djava.library.path="${PROGRAM_DIR}" -jar tvbrowser.jar "$@"
echo "TV-Browser TERMINATED."