2015-06-14 14 views
6

Szukałem, jak używać runit to run gunicorn. Szukałem w pliku bash i nie wiem co -f $PID robi wCo oznacza -f w bashie

#!/bin/sh 

GUNICORN=/usr/local/bin/gunicorn 
ROOT=/path/to/project 
PID=/var/run/gunicorn.pid 

APP=main:application 

if [ -f $PID ]; then rm $PID; fi 

cd $ROOT 
exec $GUNICORN -c $ROOT/gunicorn.conf.py --pid=$PID $APP 

Google jest bezużyteczny w tej sprawie, ponieważ szukając flagi jest bezużyteczny

+4

Myślę, że '-f' sprawdza plik lub nie. –

+0

@AvinashRaj Spraw, aby była to odpowiedź, więc mogę ją zaakceptować. – Atrotors

+0

wybierz jeden z poniższych odpowiedzi. :-) –

Odpowiedz

1

-f sprawdza, czy plik istnieje i jest zwykłym plik.

3

[ jest taka sama jak polecenie test, które pozwala przetestować pewne rzeczy. Wypróbuj help test, aby dowiedzieć się, jakie są flagi. Rzeczy, które należy zachować, to spacje - po [ potrzebne jest miejsce.

+0

-1, przepraszam. '[' jest wbudowaną powłoką, a nie "aliasem". (I 'test' to wbudowana powłoka, a nie" program ".) Wiele systemów jest dostarczanych z programami o nazwach' [i 'test' na domyślnej ścieżce, ale te programy nie są tym, co zostało wykonane podczas pisania' [-f $ PID] 'w Bash. – ruakh

+0

Dzięki za montaż; ale chodzi o to, że 'man test' pokazuje stronę podręcznika dla samodzielnego programu, a nie wbudowaną powłokę. Są na ogół bardzo podobne, ale nie są tak autorytatywne, jak można by się spodziewać "testu man". (Chociaż przynajmniej może zawierać ostrzeżenie w tym celu.) Lepszą radą byłoby uruchomienie 'help test' (' help' jest kolejnym wbudowanym Bashem). – ruakh

+0

TIL o poleceniu pomocy. Strona man zawsze działała dla mnie ... – askvictor

0
[ -f "$var" ] 

Sprawdza czy $var jest istniejący plik (zwykły plik). Symboliczne łącze również przechodzi ten test.