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.outsoubor.
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