88588
Goto Top

Shell-Befehl nacheinander Ausfürhen

hi

Wie bekomme ich das hin, dass ich eine Batch schreibe, die
erst ein Programm start und nach beenden des Programms zum
beispiel das shutdown befehl ausführt und nicht direkt.
Heißt eine kleine verzögerung soll dabei sein.
Weil wenn ich jetzt die Batch starte, startet es das Programm und nach paar sekunden
( von dem Beispiel jetzt aus) fährt der herunter.
Es soll aber nach beenden des Programms ausgeführt werden, also das shutdown Befehl.

Content-Key: 139040

Url: https://administrator.de/contentid/139040

Printed on: April 19, 2024 at 12:04 o'clock

Member: SlainteMhath
SlainteMhath Mar 24, 2010, updated at Oct 18, 2012 at 16:41:28 (UTC)
Goto Top
Moin,

i.d.R. arbeite Linux die Befehle in Shellscripts generell nach einander ab, es sei denn man lässt sie explizit im Hiuntergriund ausführen. Am besten du postest mal das entsprechende Script mit einer kurzen Beschreibung was es genau machen soll.

lg,
Slainte

P.S.: Ich hoffe das ist jetzt nicht die Neuauflage von face-smile
Mitglied: 88588
88588 Mar 24, 2010, updated at Oct 18, 2012 at 16:41:28 (UTC)
Goto Top
Das Linux die Befehle nach einander durchgeht ist mir bewusst.

Datei 1--------------------------------------------
start.sh

#!/bin/bash
cd/
cd home/........./.wine/dosdevices/c:/Programme/firefox
wineconsole firefox.exe
sudo sh /media/daten/shutdown/off.sh
Datei 2--------------------------------------------
ende.sh

#!bin/bash
sudo shutdown -h
-------------------------------------------------------------------------------------
Datei 1 startet die .exe und geht zu Datei 2 rüber und fährt herunter.
Ich möchte es so haben, nachdem Beispiel, dass ich Firefox öffne, damit arbeite
und wenn ich es schließe soll es Herunterfahren.

(Ist nur ein Beispiel, will es für ein größeres Programm verwenden, aber alles hier zu posten würde lang werden)


p.s: Nein ^^ habe das Problem ja selbst gelösst. Siehe: Neustart funktioniert nicht
Mitglied: 88588
88588 Mar 24, 2010 at 12:09:51 (UTC)
Goto Top
Es wäre doch mit einer if-Alternative zu lösen oder
ich mein wenn das Programm beendet wird führt der den inhalt aus.
Aber wie mache ich das ?
::

if [ ? ]; then
sudo sh /media/daten/shutdown/off.sh
Mitglied: 88588
88588 Mar 25, 2010 at 07:50:09 (UTC)
Goto Top
Gibt es irgendwelche Lösungsalternativen?
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 08:20:33 (UTC)
Goto Top
Moin,

da ich wine nicht benutze kann ich dir leider nichts dazu sagen.

Aber was ich nicht verstehe warum willst Du

a) unter Linux die Windows Version von Firefox via wine starten
und
b) nach dessen Beendigung den Linuxrechner herunter fahren?

lg,
Slainte
Mitglied: 88588
88588 Mar 25, 2010 at 08:31:38 (UTC)
Goto Top
Das war nur als ein Beispiel.
Ich habe mir einen großen Projekt asugedacht, was ich gerne machen möchte und die
kleinigkeiten muss ich halt dafür wissen wie zum Beispiel
Bei Hochfahren des Rechners startet das System firefox und wenn es geschloßen wird fährt es herunter.
Ich wäre einfach froh wenn zum Thema fragen geben würde und nicht dazu was ich damit erreichen möchte oder machen will.
Ich frag dich ja auch nciht wenn du ein Thread öffnest mit dem Problem "Windows startet nicht bitte hilfe?"
Warum soll ich dir helfen?
Warum startet den Windows nicht?
Was willst du damit erreiche?
ODER?

Daher würd ich mcih auf Antworten freuen, die mir behilflich sind.

Mfg c4nY>
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 08:45:31 (UTC)
Goto Top
Warum ich immer nachfrage? Wenn ich die Anforderung hinter Deinem Problem kenne gibts es evtl andere Lösungsansätze.

ODER?
Hm, Captain Caps? Nicht sehr freundlich :/
Mitglied: 88588
88588 Mar 25, 2010 at 09:02:46 (UTC)
Goto Top
Tut mir leid, habe bisjetzt nur eine schlechte Erfahrung mit den Foren gemacht.
Anstatt mir jemand den Grund der Fragen nennt oder paar hilfstellung gibt, kommen Fragen die mich halt bisschen auser Rand und Band bringen.

Problem:

Will das mein Ubuntu hochfährt, wenn er gestartet ist startet der ein "beliebiges Programm" und nachdem beenden fährt der wieder herunter.
Das mit starten funktioniert, nur mein "reboot" kommt viel zu früh zum einsatz, dass heißt wenn das Programm gestartet wird, führt der direkt danach das "reboot" aus.
Ich möchte gerne es so ändern, dass erst das "reboot " kommt wenn ich das Programm geschloßen habe.

Zweck:

Habe eine kleine Fetsplatte ( 10GB) den ich anschließen möchte und wenn ich Windows nciht mehr starten kann geh ich über Ubuntu und lass das Image wieder drauf spielen.
Dadurch hat sich das Problem gelöst, aber damit man in Ubuntu nur diese Eigenschaft haben will, muss das halt mit dem "Nachdem beenden des Programms Herunterfahren" halt sein.
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 09:39:45 (UTC)
Goto Top
Habe eine kleine Fetsplatte ( 10GB) den ich anschließen möchte und wenn ich Windows nciht mehr starten kann geh ich über Ubuntu und lass das
Image wieder drauf spielen.
Dadurch hat sich das Problem gelöst, aber damit man in Ubuntu nur diese Eigenschaft haben will, muss das halt mit dem "Nachdem beenden des
Programms Herunterfahren" halt sein.

Aha! kommen wir der Sache schon näher face-smile
Wenn du auf die grafische Oberfläche verzeichten könntest wäre alles ein Stück einfacher face-smile

Sowas könnte dann i.E. so aussehen:
#!/bin/sh

#Programm starten
/pfad/zum/programm

# 2 Sekunden warten
sleep 2

#Prozess ID ermitteln
PID=`ps ax | grep "programm" | awk '{print $1}'`  

echo Warte auf PID: $PID
wait $PID
echo Fertig - fahre System in 10 sec  hretuner
shutdown -t 10

Das Script geht davon aus das
a) nur eine Instanz von "Programm" läuft
und
b) Das Programm im Hintergrund ausfgeführt wird.
Mitglied: 88588
88588 Mar 25, 2010 at 09:52:05 (UTC)
Goto Top
Ich danke für deine Verständnis.

Meine Frage jetzt wäre ist das Script so aufgebaut, dass solange das Programm Läuft kein shutdown durchgeführt wird ?
weil soweit ich weiß, braucht man schleifen um immer wieder eine Anweisung durch zu " Checken", ob sie läuft oder nicht.

Mfg
c4nY

p.s SlainteMhath bin dir bisjetzt sehr Dankbar
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 10:04:24 (UTC)
Goto Top
... weil soweit ich weiß, braucht man schleifen um ...

Nein Schleifen braucht's keine:
...
echo Warte auf PID: $PID 
wait $PID 
...
Steht eigentlich schon ziemlich im Klartext da, was das Script bzw der "wait" befehl macht, oder? face-smile
Mitglied: 88588
88588 Mar 25, 2010 at 10:23:36 (UTC)
Goto Top
Ok dann kann ich es ja ausprobieren.
Und bei Problemen wende ich mich wieder.
Mitglied: 88588
88588 Mar 25, 2010 at 11:02:06 (UTC)
Goto Top
hmm#
Es funktioniert nicht face-sad
Also das Programm wird gestartet aber danach kein Erfolg mehr.
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 11:32:16 (UTC)
Goto Top
Wie seiht das script jetzt aus das bei dir nicht funktioniert?
Mitglied: 88588
88588 Mar 25, 2010 at 11:50:49 (UTC)
Goto Top
Hier was geschrieben habe, Bitte um hilfe face-smile
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 12:32:57 (UTC)
Goto Top
Auf Rapidshare kann ich hier nicht zugreifen, sorry. Einfaches copy&paste des Textes haetts auch getan face-smile
Mitglied: 88588
88588 Mar 25, 2010 at 12:35:52 (UTC)
Goto Top
#!/bin/bash

cd /
cd /home/name/.wine/dosdevices/c:/Programme/prog
wineconsole prog

sleep 2

PID=`ps ax | grep " prog" | awk '{print $1}'`

echo Warte auf PID: $PID
wait $PID
echo Fertig - fahre System in 10 sec. herunter
shutdown -t 10


prog= das programm was ich benutze
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 12:39:22 (UTC)
Goto Top
Ersetze in der zeile
 PID=`ps ax | grep " prog" | awk '{print $1}'`  
"prog" durch "wine" oder "wineconsole"
Mitglied: 88588
88588 Mar 25, 2010 at 12:40:20 (UTC)
Goto Top
wineconsole prog
oder nur
wineconsole ?
Member: SlainteMhath
SlainteMhath Mar 25, 2010 at 12:43:48 (UTC)
Goto Top
Zitat von @88588:
wineconsole prog
oder nur
wineconsole ?
wineconsole

du kannst auch mit "ps ax" nachsehen wie das programm/der prozess heist dewr dann läuft, wenn das programm in wine aktiv ist. der muss dann abgefragt werden.
Mitglied: 88588
88588 Mar 25, 2010 at 12:45:47 (UTC)
Goto Top
die heißt dann in den prozessen "blub.exe"

habs mit wineconsole blub.exe
und nur winconsole ausprobiert aber wir vorher nur das Programm startet und nachdem beenden tut sich ncihts mehr.