Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Im KDE skript im Terminal ausführen und nicht schliessen
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Thu Jan 16, 2014 4:47 pm    Post subject: Im KDE skript im Terminal ausführen und nicht schliessen Reply with quote

Habe eine .sh Datei die ein Programm aufruft und es in den Hintergrund macht.
Das Skript kann ich als User Starten, das Programm geht in den Hintergrund und alles ist gut, vom Terminalfenster aus.
Nun will ich das Skript per Doppelclick clicken und es soll über das xterm Terminalfenster (benutze im KDE das Programm "konsole") gestartet werden. Ich will das dass xterm Fenster das Skript aufruft damit falls das Skript fehlermeldungen ausgibt, ich sie sehen kann.
Wie stelle ich das an? Mit rechtsclick auf das Skript finde ich nichts wo ich sagen kann "nach beendigung geöffnet lassen", diese Option gibt es nur wenn ich eine Desktop-Verknüpfung mache. Mache ich das, habe ich aber "konsole"-Terminalfenster.
Über z.B. Alt + F2 kann ich "xterm mc" eingeben, und ich habe den Midnight Commander im Xterm Terminalfenster.
Aber mit "xterm /mein/script.sh" tut das nicht. Wie muss ich vorgehen?
Back to top
View user's profile Send private message
py-ro
Veteran
Veteran


Joined: 24 Sep 2002
Posts: 1733
Location: St. Wendel

PostPosted: Thu Jan 16, 2014 10:36 pm    Post subject: Reply with quote

Bei konsole

Code:
konsole --help


Dort findest dann --no-close oder --hold.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Thu Jan 16, 2014 10:48 pm    Post subject: Reply with quote

Naja, ich will ja nicht "konsole" benutzen, sondern xterm.
Back to top
View user's profile Send private message
py-ro
Veteran
Veteran


Joined: 24 Sep 2002
Posts: 1733
Location: St. Wendel

PostPosted: Thu Jan 16, 2014 11:00 pm    Post subject: Reply with quote

Oben schriebst aber konsole, naja, bei xterm kannst nach -hold schauen.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Thu Jan 16, 2014 11:47 pm    Post subject: Reply with quote

Dann habe ich mich nicht ganz richtig ausgedrückt.
Ich will auf meinem KDE Desktop eine Verknüpfung anlegen die auf eine .sh Datei zeigt.
Wenn ich diese verknüpfung anclicke, will ich das ein xterm Fenster kommt das meine .sh Datei aufruft und sich aber nicht schliesst.
In der .sh Datei rufe ich ein Programm auf das sich in den Hintergrund macht.
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4408

PostPosted: Fri Jan 17, 2014 9:08 am    Post subject: Reply with quote

Dann erstell doch ein weiteres script, das "xterm -hold eigentliches_script.sh" o.Ä. aufruft und erstell dafür einen shortcut auf deinem desktop.
Oder verwend yakuake und ruf da das script einfach direkt auf? (Ich hab nie verstanden, warum Leute lieber auf dem nicht immer sichtbaren Desktop rumclicken als ne konsole oder Alt+F2 zu verwenden, aber naja ;))
Back to top
View user's profile Send private message
musv
Advocate
Advocate


Joined: 01 Dec 2002
Posts: 3254
Location: de

PostPosted: Fri Jan 17, 2014 10:12 am    Post subject: Reply with quote

Du kannst auch einfach am Ende Deines Scripts ein:
Code:
read

rankleben. Dann wartet die Konsole solange, bis eine Taste gedrückt wurde, bevor sie sich schließt.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Fri Jan 17, 2014 12:40 pm    Post subject: Reply with quote

Mit "read" am Ende vom Script tut sich bei mir nichts. Als wenn es garnicht beachtet werden würde.

Mit einem weiterem Scripte, in dem
#!/bin/sh
xterm -hold meinscript.sh
steht, erhalte ich die Aussage "xterm: No absolute path found for shell:".
Schreibe ich den gesamten Pfad dazu, funktioniert es, jedoch wenn ich das xterm Fenster schliesse, schliesst sich auch das Programm das durch das erste Script in den Hintergrund gelegt wurde.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Jan 17, 2014 3:41 pm    Post subject: Reply with quote

wie legst du denn das programm in den Hintergrund? mit "&"?
Wahrscheinlich musst du noch ein "nohup" dem befehl vorne ranstellen.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Fri Jan 17, 2014 6:07 pm    Post subject: Reply with quote

Ja, mit & lege ich es in den Hintergrund.
Egal ob nur im 1. , 2. oder in beiden Scripten ein "nohup" steht, es zeigt keine positive wirkung.

Hier meine beiden Scripte:

vm01_2_start.sh
Code:

#!/bin/sh
nohup qemu-kvm \
  -k de -enable-kvm -smp 8 -m 2048 -localtime -name __vm01-test__ \
  -hda vm01_disk1.img \
  -hdb vm01_disk2.img \
  -vga vmware \
  -net nic,model=virtio,macaddr=00:00:00:00:00:01 \
  -net tap,ifname=qtap1,script=no,downscript=no \
  -usbdevice tablet \
  -qmp tcp:127.0.0.1:4444,server,nowait \
  -vnc 192.168.178.33:1 &
echo $! > ./vm01_run.pid
#   -cdrom install-amd64-minimal-20131010.iso \
#   -boot d \
read

Mit diesem Scripte starte ich meine VM von dem Terminalemulator "konsole"
Wenn ich dieses Script über die KDE Oberfläche aus anclicke, startet die VM auch, scheinbar jedenfalls.
Ich erhalte keine Meldung ob sie dies wirklich tut oder ob es eine Fehlermeldung gab.
Über den Terminalemulator "konsole" würde ich eine Fehlermeldung angezeigt bekommen.

So, nun das 2. Script das ich nur von der KDE Oberfläche aus nutze um das erste Script aufzurufen.
vm01_starten.sh
Code:

#!/bin/sh
nohup xterm -hold /mnt/test/vm01_2_start.sh
read


Ich will im KDE auf etwas clicken können, das mir in einem xterm Fenster anzeigt ob und wie qemu-kvm gestartet wird.
Wie muss ich das anstellen?!
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Jan 17, 2014 7:03 pm    Post subject: Reply with quote

also, wenn du xterm einen scriptnamen mitgibst, dann musst du da noch ein -e davor machen. außerdem macht beim xterm das nohup keinen sinn, das willst du ja nicht im hintergrund laufen lassen. also sollte das so aussehen:
Code:
xterm -e /mnt/test/vm01_2_start.sh

das musst du auch nicht in ein skript machen, das geht auch als anwendungsstarter.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Fri Jan 17, 2014 7:25 pm    Post subject: Reply with quote

Wenn ich ALT + F2 mache, und dann dort
xterm -e /mnt/test/vm01_2_start.sh
eingebe, habe ich plötzlich auf dem Desktop eine "vm01_run.pid" Datei.
Und startet tut es auch nicht.
Auch wenn ich es als Verknüpfung auf dem KDE Desktop anlege, das gleiche. Es kommt nichts wenn ich es doppelclicke.
Back to top
View user's profile Send private message
Christian99
Veteran
Veteran


Joined: 28 May 2009
Posts: 1176

PostPosted: Fri Jan 17, 2014 8:16 pm    Post subject: Reply with quote

steht in der .pid datei was drin?

und was passiert wenn du
Code:
xterm -hold -e /mnt/test/vm01_2_start.sh
machst?
Back to top
View user's profile Send private message
franzf
Advocate
Advocate


Joined: 29 Mar 2005
Posts: 4408

PostPosted: Fri Jan 17, 2014 8:35 pm    Post subject: Reply with quote

SarahS93 wrote:
Wenn ich ALT + F2 mache, und dann dort
xterm -e /mnt/test/vm01_2_start.sh
eingebe, habe ich plötzlich auf dem Desktop eine "vm01_run.pid" Datei.

Klar, wegen dieser Zeile in deinem start-script:
Code:
echo $! > ./vm01_run.pid
Back to top
View user's profile Send private message
mrueg
Developer
Developer


Joined: 08 Jul 2012
Posts: 36
Location: Berlin, Deutschland

PostPosted: Sun Jan 19, 2014 3:35 am    Post subject: Reply with quote

Um das sofortige Schließen zu verhindern kann man auch soetwas wie

xterm -e "script.sh; exec bash" nutzen. Das kommt vermutlich nahe an das ran, was du eigentlich willst.
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Sun Jan 19, 2014 11:00 am    Post subject: Reply with quote

#!/bin/sh
xterm -e "script.sh; exec bash"
Tuts, aber wenn ich das xterm-Fenster zu mache, wird auch das Programm das ich in script.sh aufrufe beendet

erweitere ich es nach
#!/bin/sh
cd /pfad/
xterm -e "script.sh; exec bash"
und erstelle von dem Script das dass Script aufruft eine Verknüpfung auf den Desktop, hab ich schonmal
das Problem mit der .pid Datei nicht mehr, die komm nämlich jetzt in den richtigen Pfad (-;

Erweitere ich nochmals um
xterm -hold -e "script.sh; exec bash"
und will dann das xterm-Fenster schliessen, über X oben rechts, bleibt es noch da, und zeigt mir an
qemu: terminating on signal 1 from pid 12356

Mein Programm, qemu-kvm, lässt sich scheinbar auch mit Optionen wie "-pidfile" und "deamonsize" aufrufen. Daher ist mein scheinbar umständlicher weg garnicht nötig. Dennoch würde ich gerne verstehen warum es auf meine Methode so schwierig ist das so hinzubekommen....
Back to top
View user's profile Send private message
SarahS93
Guru
Guru


Joined: 21 Nov 2013
Posts: 468

PostPosted: Mon Jan 20, 2014 7:12 pm    Post subject: Reply with quote

Bei qemu-kvm benutze ich nun die Optionen "-daemonize" und "-pidfile", es funktioniert!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum