nohup php file.php > /dev/null 2>&1 &
Im większe-Thans (>
) w poleceniach takie jak przekierować dane wyjściowe programu gdzieś. W tym przypadku coś jest przekierowany do /dev/null
, a coś jest przekierowany do &1
Standardu in, out, i błąd
Istnieją trzy podstawowe źródła wejścia i wyjścia dla programu. Standardowe wejście zwykle pochodzi z klawiatury, jeśli jest to program interaktywny lub z innego programu, jeśli przetwarza dane wyjściowe innego programu. Program zwykle drukuje na standardowe wyjście, a czasami drukuje na standardowy błąd. Te trzy deskryptory plików (można je nazwać "rurami danych") są często nazywane STDIN, STDOUT, and STDERR
.
Czasami nie są wymieniane, są ponumerowane! Wbudowane numeracje dla nich to 0, 1, and 2
, w tej kolejności. Domyślnie, jeśli nie podasz jednoznacznie ani nie numer jeden, mówisz o STDOUT
.
powyższe polecenie przekierowuje standardowe wyjście do /dev/null
, które jest miejscem, w którym możesz zrzucić wszystko, czego nie chcesz, a następnie przekierowujesz standardowy błąd na standardowe wyjście (musisz umieścić &
przed miejscem docelowym, gdy Zrób to).
Krótkie wyjaśnienie brzmi: "wszystkie dane wyjściowe z tego polecenia powinny zostać wepchnięte w czarną dziurę." To dobry sposób, aby program był naprawdę cichy!
&
na końcu umieszcza polecenie w tle.
ref: https://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/
Co masz na myśli, że szybko się kończy? Na końcu wyświetli się monit o kontynuowanie wykonywania poleceń powłoki, podczas gdy skrypt działa w tle. Możesz sprawdzić, czy nadal działa, wpisując "jobs" – Zak
czy próbowałeś ustawić error_reporting (E_ALL) i ustawienie display_errors = 1? mogą wystąpić pewne błędy, a Twój proces prawdopodobnie kończy się nieprawidłowo – marcelog
try: exec ("nohup php file.php>/dev/null 2> &1 &"); –