Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Linux Forum Linux-Web.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

09.09.2005, 09:48

screen-Befehl in script einbauen

Hallihallo wiedereinmal! :)

Ich würde gerne mein geschriebenes Script in einem neuen screen ablaufen lassen.
Es soll beim aufruf von run.sh ein neuer screen erstellt werden, der dann im hintergrund mein script ausführt und währenddessen aber zum ursprünglichen zurückspring (also den Tastengriff Strg+A D automatisiert).

Wie kann man dies automatisch machen lassen?
Momentan sieht mein run.sh folgendermaßen aus:

Quellcode

1
2
screen
sh ./Script.sh


Doch leider bricht er nach screen ab und führt Script.sh nicht aus.

Hat jemand einen Tipp parat?

LG
Nine

2

09.09.2005, 11:04

RE: screen-Befehl in script einbauen

man screen oder http://gentoo-wiki.com/MAN_screen

Dort kannst Du entnehmen, daß der Aufruf so aussehen muss:

Quellcode

1
screen ./script.sh
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

3

09.09.2005, 12:30

RE: screen-Befehl in script einbauen

Zitat

Original von chieps
man screen oder http://gentoo-wiki.com/MAN_screen

Dort kannst Du entnehmen, daß der Aufruf so aussehen muss:

Quellcode

1
screen ./script.sh


ok danke

habs probiert, aber als er mein script ausführen wollte, hat er es nicht gefunden, obwohls im selben ordner liegt.-
Woran kann das liegen?
Muss ich einen absoluten Pfad angeben?

LG

4

09.09.2005, 12:58

RE: screen-Befehl in script einbauen

Zitat

Original von ninette111
Muss ich einen absoluten Pfad angeben?


Das würde ich empfehlen..

Oder Du fügst in Deine PATH-Variale das Verzeichnis bin in Deinem Home hinzu un dlegst ausführbare Sachen und Scripte dort ab.. Dann findet er die auch ohne Pfad
Just because an OS holds 90% of the market doesn`t mean it`s superior.
Remember 90% of all animals are insects.

Wer sucht der findet..

5

12.09.2005, 09:30

RE: screen-Befehl in script einbauen

hm nein, mit absolutem pfad funktionierts wieder nicht.

ich hab jetzt folgenden Aufruf empfohlem bekommen:

Quellcode

1
screen -dmS name ./run.sh


Doch wenn ich diesen eingebe, bekomme ich die Fehlermeldung
"
: command not found
"

Kennt ihr den -dmS Parameter?
Wie könnte ich es hinbekommen, dass sich mein script auf einem extra screen startet??

LG
Nine.

DJH

Anfänger

  • »DJH« ist männlich

Beiträge: 1

Wohnort: Hammersbach / Hessen

Beruf: Elektroinstallateur

  • Nachricht senden

6

20.03.2006, 12:30

Ist zwar etwas her seit dem letzten Post aber falls noch jemand durch Zufall (per google) hier landet:

Das Script sollte in etwa so aussehen:

#!/bin/bash
cd /Pfad/zur/Datei
screen -AmdS Screenname ./AusführbaresScript

Und natürlich nicht vergessen die Ausführrechte zu vergeben ;)

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

7

22.04.2006, 08:29

Ich habe das script so geschrieben wie du sagtest aber es kommen zwei fehler :) Also in jeder Zeile einer:

: No such file or directoryerver: line 4: cd: /***/***/***/
: command not foundte/war-server: line 5:

in zeile 4 ist der cd befehl und in zeile 5 der screen aufruf ....

ich habe bei dem pfad auch schon den letzten / weg gelassen aber bekam das gleiche ergebnis !

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BigWhoop« (22.04.2006, 08:30)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

8

22.04.2006, 08:51

Absolute Pfade im Script verwenden bzw. das Script hier posten. ./script in Verbindung mit GNU Screen will man auch nicht wirklich nutzen, weil nicht gesagt ist das man eine Loginshell mit den passenden Variablen hat. Besser waere es das Script ausfuehrbar zu machen und in einem Verzeichnis abzulegen das im $PATH enthalten ist. Alternativ dazu trag einfach

Quellcode

1
screen -t 'Ausfuehrbares Script' /path/to/AusfuehrbaresScript

in die ~/.screenrc ein.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

9

23.04.2006, 19:44

Zitat


#!/bin/sh
start=`date '+%H:%M on %d/%m/%y'`
echo "Scouts Server started @ $start" >>'/home/cstrike/hlds2/cstrike/server.log'
cd /home/cstrike/hlds2/
screen -AmdS hlds home/cstrike/hlds2/srcds_run >/dev/null 2>&1 &
echo $! >/home/cstrike/hlds2/cstrike/scout.pid


^^ so sieht sie im moment aus ... komisch ist auch das ich wenn ich das script ausführbar mache und es direkt starten will mit ./script er dann sagt das der interpret falsch wäre !

starte ich mit "/bin/bash ./script" gibt er mir die fehlermeldung aus das er den befehl in zeile 5 nicht kennt und das er den pfad zu zeile 4 nicht findet !

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

10

23.04.2006, 20:00

Zitat

Original von BigWhoop

Zitat


#!/bin/sh
start=`date '+%H:%M on %d/%m/%y'`
echo "Scouts Server started @ $start" >>'/home/cstrike/hlds2/cstrike/server.log'
cd /home/cstrike/hlds2/
screen -AmdS hlds home/cstrike/hlds2/srcds_run >/dev/null 2>&1 &
echo $! >/home/cstrike/hlds2/cstrike/scout.pid


^^ so sieht sie im moment aus ... komisch ist auch das ich wenn ich das script ausführbar mache und es direkt starten will mit ./script er dann sagt das der interpret falsch wäre !

Kann etliche Ursachen haben. Google erschlaegt Dich mit Ursachen und Loesungen darauf.

Zitat

starte ich mit "/bin/bash ./script" gibt er mir die fehlermeldung aus das er den befehl in zeile 5 nicht kennt und das er den pfad zu zeile 4 nicht findet !

Gibt den absoluten Pfad zu GNU Screen an und aendere die Zeile auch gleich. ">/dev/null 2>&1 &" ist unter GNU Screen ziemlich sinnbefreit. Die letzte Zeile will man auch nur im Ausnahmefall verwenden; pgrep(1) bzw. pidof(8) (sofern vorhanden) sind besser dafuer geeignet.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

11

23.04.2006, 21:06

hmmm er macht nun keine fehlermeldung mehr aber er startet screen auch nicht :(

Zitat

#!/bin/sh
start=`date '+%H:%M on %d/%m/%y'`
echo "Scouts Server started @ $start" >>'/home/cstrike/hlds2/cstrike/server.log'
/usr/bin/screen -AmdS hlds '/home/cstrike/hlds2/srcds_run -game cstrike +maxplayers 20 +map de_dust'
pidof -s srcds_amd $! >/home/cstrike/hlds2/cstrike/scout.pid


^^ so sieht es jetzt aus :) danke für das pidof :)

aber die srcds_run wird nicht ausgeführt :(

strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

12

23.04.2006, 21:16

Zitat

Original von BigWhoop
/usr/bin/screen -AmdS hlds '/home/cstrike/hlds2/srcds_run -game cstrike +maxplayers 20 +map de_dust'

-AmdSt hlsd ...

Zitat

pidof -s srcds_amd $! >/home/cstrike/hlds2/cstrike/scout.pid


Das ``$!'' brauchst Du nicht. pidof(8) schreibt die PID von srcds_amd automatisch in die Datei.
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

13

23.04.2006, 22:54

ok ich bin wieder ein schritt weiter gekommen ! :)

Nur läd er jetzt zwar nen neuen screen aber er startet das programm nicht !

Zitat

#!/bin/sh
start=`date '+%H:%M on %d/%m/%y'`
echo "Scouts Server started @ $start" >>'/home/cstrike/hlds2/cstrike/server.log'
/usr/bin/screen -AmdSt hlds '/home/cstrike/hlds2/srcds_run -game cstrike +maxplayers 20 +map de_dust'
pidof -s srcds_amd >/home/cstrike/hlds2/cstrike/scout.pid


wenn ich nach dem start in screen rein gehe dann steht da einfach nur der pfad von wo ich es gestartet habe mit eingabeaufforderung :(

Wenn ich aber die ' weg mache dann sagt er mir das das ein falscher parameter für screen ist !

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »BigWhoop« (23.04.2006, 22:54)


strcat

Unix Gladiator

  • »strcat« ist männlich

Beiträge: 2 331

Wohnort: /Earth/Germany/Bavaria/Regensburg

  • Nachricht senden

14

23.04.2006, 23:10

" anstelle von ' verwenden. Wieso schreibst Du nicht einfach

Quellcode

1
screen -t 'hlds' home/cstrike/hlds2/srcds_run -game cstrike +maxplayers 20 +map de_dust'

in die ~/.screenrc?
Christian 'strcat' Schneider <http://www.strcat.de/>
/* When all else fails, read the instructions. */

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

15

24.04.2006, 00:32

weil ich keine Ahnung habe was das sein soll und heute schaue ich auch nicht mehr nach :)

Ich werde wohl morgen nen blick rein werfen !

gn8 :) und danke sehr für deine bemühungen

BigWhoop

Anfänger

  • »BigWhoop« ist männlich

Beiträge: 6

Wohnort: Bielefeld

Beruf: Energie-Elektroniker

  • Nachricht senden

16

24.04.2006, 19:46

Zitat

#!/bin/sh
start=`date '+%H:%M on %d/%m/%y'`
echo "Scouts Server started @ $start" >>/home/cstrike/hlds2/cstrike/server.log
/usr/bin/screen -AmdSt hlds "/home/cstrike/hlds2/srcds_run -game cstrike +maxplayers 20 +map de_dust"
pidof -s srcds_amd >/home/cstrike/hlds2/cstrike/scout.pid


so sieht es jetzt aus mit dem gleichen Ergebnis wie beim letzten mal ... er macht einen neuen screen mit dem namen hlds und das wars ! er startet es einfach nicht.

bei screenrc bin ich nicht weiter gekommen ... ich weiss nicht wie ich damit mein problem lösen könnte :(

Thema bewerten