nohup php file.php > /dev/null 2>&1 &
Větší než (>
) v příkazech, jako jsou tyto, přesměrují výstup programu někam. V tomto případě je něco přesměrováno na /dev/null
a něco je přesměrováno na &1
Standardní vstup, výstup a chyba
Existují tři standardní zdroje vstupu a výstupu programu. Standardní vstup obvykle pochází z klávesnice, pokud se jedná o interaktivní program, nebo z jiného programu, pokud zpracovává výstup jiného programu. Program obvykle tiskne na standardní výstup a někdy tiskne se standardní chybou. Tyto tři deskriptory souborů (můžete si je představit jako „datové kanály“) se často nazývají STDIN, STDOUT, and STDERR
.
Někdy nejsou pojmenováni, jsou očíslováni! Vestavěné číslování pro ně je 0, 1, and 2
, v tomto pořadí. Ve výchozím nastavení, pokud výslovně neuvedete jméno nebo číslo jedna, mluvíte o STDOUT
.
výše uvedený příkaz přesměrovává standardní výstup na /dev/null
, což je místo, kde můžete vypsat vše, co nechcete, a poté přesměrovat standardní chybu na standardní výstup (musíte zadat &
před cílem, když to uděláte).
Krátké vysvětlení proto zní „veškerý výstup z tohoto příkazu by měl být strčen do černé díry“. To je jeden dobrý způsob, jak zajistit, aby byl program opravdu tichý!
&
na konci umístí příkaz na pozadí.
ref:https://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/
Jste si jisti, že skript neobsahuje žádné chyby? To je to, co obvykle způsobí, že "provádění skončí velmi rychle ".
Nejprve připojte:
error_reporting(E_ALL); ini_set('display_errors', 1);
v horní části skriptu, abyste zobrazili případné chyby, pak můžete použít :
nohup php filename.php &
nohup spustí příkaz, i když je relace odpojena nebo se uživatel odhlásí.
NEBO
nohup php filename.php >/dev/null 2>&1 &
Stejné jako výše, ale nevytváří
nohup.out
soubor.
Můžete také použít:
ignore_user_abort(1);
Nastavte, zda má odpojení klienta přerušit provádění skriptu
`set_time_limit(0);`
Omezuje maximální dobu provádění skriptu, v tomto případě poběží, dokud proces neskončí nebo se restartuje proces Apache.
#NotesThe php
a filename.php
cesty mohou být poskytovány jako úplná cesta , namísto php
a filename.php
, můžete použít /usr/bin/php
a /full/path/to/filename.php
.
Doporučuje se úplná cesta abyste zabránili tomu, že soubor nebyl nalezen chyby.
proces může být uzavřen, když je vaše relace uzavřena.
zkuste použít nohup php filename.php