Bash Script Programmstart

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Ikarus
Beiträge: 44
Registriert: 17.09.2006 17:32:03

Bash Script Programmstart

Beitrag von Ikarus » 04.07.2008 12:35:58

Hallo

ich habe folgendes Problem . Ich bau mir mit einem Bash script einen Programmaufruf zusammen, der so aussieht

Code: Alles auswählen

nohup tshark -i eth0 -w /var/www/Captures/Captures/test/test -b filesize:10240 -b files:10 & 
Allerdings startet tshark nicht. Es liegt denke ich am nohup und am & am ende (ohne Startet es).. Auf der Konsole kann ich den Aufruf mmit nohup und & ausführen.

Muss ich den Aufruf escapen ? oder in bestimmt klammern ?

Gruß

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Bash Script Programmstart

Beitrag von Duff » 04.07.2008 12:51:04

Packe den Aufruf ohne nohup und & in ein Skript und rufe dann das Skript mit nohup und & auf.
Oh, yeah!

Ikarus
Beiträge: 44
Registriert: 17.09.2006 17:32:03

Re: Bash Script Programmstart

Beitrag von Ikarus » 04.07.2008 13:17:41

Danke erstmal aber gibts da nicht eine andere Lösung ?

Ich woltle das Script einfach nur mit dem Namenstarten ohne was außenrum

Haste noch ne Idee? oder jemand anderes ?

Gruß

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Bash Script Programmstart

Beitrag von jhr-online » 04.07.2008 15:04:26

Es geht nur um diesen einen Befehl? Dann schreib dir ein alias in deine .bashrc.

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Bash Script Programmstart

Beitrag von gms » 04.07.2008 16:07:55

Ikarus hat geschrieben: Muss ich den Aufruf escapen ? oder in bestimmt klammern ?
nein, nohup gibt diese Argumente 1:1 weiter
vermuten würde ich daher einen Fehler im Shellscript, das könntest du einmal auf Nopaste http://nopaste.debianforum.de/ posten;
zum mittracen könntest du dein Shellscript auch einmal mit "bash -x deinscript" aufrufen, dann siehst du eventuell besser, was da wirklich schief läuft;
Nachdem der "tshark" Prozeß die PID vom nohup erben sollte, kannst du dir gleich nach dem nohup-Aufruf auch die PID anzeigen lassen:

Code: Alles auswählen

gms1 ~ # cat x.sh
#!/bin/bash

nohup tshark -i eth0 &
TSHARKPID=$!
echo PID=$TSHARKPID
ps -ef | awk "\$2~/$TSHARKPID/{print}"
kill $TSHARKPID
ps -ef | awk "\$2~/$TSHARKPID/{print}"
gms1 ~ # bash  x.sh
PID=2702
nohup: appending output to „nohup.out“
root      2702  2701  0 16:05 pts/6    00:00:00 tshark -i eth0
x.sh: line 8:  2702 Beendet                 nohup tshark -i eth0

Gruß
gms

Ikarus
Beiträge: 44
Registriert: 17.09.2006 17:32:03

Re: Bash Script Programmstart

Beitrag von Ikarus » 14.07.2008 11:45:57

Hey,

danke für euer Hilfe, hat leider einige Tage gedauert, dass ich mich wieder melde. Hab Arbeitstechnisch recht viel um die Ohren gehabt.
Habe hier mal das script gepostet.

http://nopaste.debianforum.de/9584

Vielleicht findet einer von euch den Fehler--

Gruß
Iki

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Bash Script Programmstart

Beitrag von gms » 14.07.2008 15:29:11

Ikarus hat geschrieben: Vielleicht findet einer von euch den Fehler--
wenn du dich ein bißchen bemüht hättest, hättest du den Fehler auch gefunden :wink:

Code: Alles auswählen

RingBuffer y/n ?
n
Sniffer activity is just displayed on screen
Use a standard filter?
0 without a Filter
1 filtering hsrp
2 define a new filter
0
Start Tshark ? <y/n>
nohup tshark -i eth0 &
y
..............Start TShark..............
nohup: ignoriere Eingabe und hänge Ausgabe an ?nohup.out? an
csxgen2 tmp # tail nohup.out
Capturing on eth0
tshark: Invalid capture filter: "&"!

That string isn't a valid capture filter (syntax error).
See the User's Guide for a description of the capture filter syntax.
0 packets captured
das "&" wird hier als Argument für tshark genommen, sollte aber eigentlich das "nohup" Kommando in den Hintergrund schicken
daher sollte

Code: Alles auswählen

tsharkquery='nohup '$tsharkquery' '$filter"&" 
entfernt werden

und

Code: Alles auswählen

 $tsharkquery;;
zu

Code: Alles auswählen

 nohup $tsharkquery &;;
geändert werden

Antworten