Sida 1 av 1

Bash skript

Postat: 08 feb 2008, 22:03
av elfizz
I min .bashrc så har jag ställt in så att

Kod: Markera allt

 alias torrent="screen -S rtorrent -m rtorrent" 
Men om rtorrent redan då är startad i en screen får jag så felmedelandet
[screen is terminating]

Så då måste jag köra screen -r får att starta rtorrent eller då screen -D -R rtorrent om jag har flera screen öppna.
Kan jag då skriva någon slags if-sats så om screen redan är öppen så kör den det andra kommandot

typ

Kod: Markera allt

if ( om rtorrent inte är startat )
  alias torrent="screen -S rtorrent -m rtorrent"
else
  screen -D -R rtorrent
hur skulle jag skriva den koden i bash?

SV: Bash skript

Postat: 08 feb 2008, 23:01
av Erikw
Kan du inte connecta med -x istället för -r så kan du ansluta till samma session flera gånger. Eller vad det inte det du ville göra?

SV: Bash skript

Postat: 09 feb 2008, 03:17
av elfizz
Den det fungerar väl bara om det redan är en screen med rtorrent startad. Om det inte är det så vill jag att den ska skapa en.

SV: Bash skript

Postat: 09 feb 2008, 04:08
av Mekaniserad Apelsin
Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then
starta rtorrent
else
starta inte rtorrent
fi

SV: Bash skript

Postat: 09 feb 2008, 04:08
av Konservburk
Varför använder du inte -DR direkt i ditt alias?

Kod: Markera allt

alias torrent="screen -mDRS rtorrent rtorrent"

SV: Bash skript

Postat: 09 feb 2008, 04:24
av Konservburk
Mekaniserad Apelsin skrev: Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then

Kod: Markera allt

if pgrep rtorrent >&-
then
Lite vackrare, men fortfarande samma fulhack.

Om man ska göra den där if-satsen på ett vettigt sätt så vill man
kolla i rtorrents sessions-katalog och se om det finns någon lockfil,
och om det finns, se om processen den pekar på fortfarande lever.

SV: Bash skript

Postat: 09 feb 2008, 11:35
av Mekaniserad Apelsin
Konservburk skrev:
Mekaniserad Apelsin skrev: Fulhack:

if [ $(ps -A | grep -c rtorrent) -eq 0 ]
then

Kod: Markera allt

if pgrep rtorrent >&-
then
Lite vackrare, men fortfarande samma fulhack.

Om man ska göra den där if-satsen på ett vettigt sätt så vill man
kolla i rtorrents sessions-katalog och se om det finns någon lockfil,
och om det finns, se om processen den pekar på fortfarande lever.
mm.

I "rtorrent howto"-tråden har jag postat just en sådan...

SV: Bash skript

Postat: 09 feb 2008, 13:08
av elfizz
Tack så mycket nu fungerar allt utom en sak. Jag har använt koden.

Kod: Markera allt

if pgrep rtorrent >&- 
        then
                alias torrent="screen -R -D rtorrent"
        else
                alias torrent="screen -S rtorrent -m rtorrent"
fi
Men det fungerar ara första gången man skriver det. Om jag sen bara göra "detached screen" med crl a+d så vill jag kunna skriva torrent igen och få tillbaka den. Så den kör bara if satsen när jag startar terminal jag vill att den ska köras varja gång jag skriver torrent.

SV: Bash skript

Postat: 09 feb 2008, 13:42
av elfizz
löste detta genom att skriva if-satsen i ett skript som blev anroppat när man skrev torrent i terminalen istället. Tack så mycket för hjälpen

SV: Bash skript

Postat: 09 feb 2008, 15:04
av Konservburk
Varför kör du inte helt enkelt med alla flaggor till screen på en gång?

Kod: Markera allt

alias torrent="screen -R -D -S rtorrent -m rtorrent"
Eller blir det inte som du vill ha det då?

SV: Bash skript

Postat: 09 feb 2008, 15:11
av elfizz
Jo det blir det försig, förutom att den första gången man statar så kommer en blank sida upp i någon sekund där det står new screen innan man kom till rtorrent. Så det fungerade. Ville bara lära mig lite mer hur if-satserna i bash fungerade :)