Hogyan zárjuk a terminál nélkül megöli indult a csapat
Néha meg kell „elválasztani” a programot a terminál ablak, amelyben fut. Például, ha csatlakozik egy távoli szerveren keresztül SSH, futtatja a feladatot, ami nem egy démon, de a végrehajtását, amely előírja, sok időt (akár napok vagy hónapok). Ha bezárja a terminál vagy csak újraindul a SSH, a futó program egyszerűen leáll.
Egy másik példa az a helyzet, amikor szükség lehet, a munka egy fejetlen szerver (nincs grafikus asztali környezet), és emiatt nem tudja megnyitni több terminál ablakot. Tehát azt szeretnénk, hogy fordítsa le a programot a háttérben továbbra is együttműködik a terminál.
Ez a cikk ismerteti a lehetőségeket, hogyan zárja a terminál megállás nélkül a futó program is.
Ehhez két megoldás van:
Lássuk, de mi a különbség
Nézzük először megnézzük, mi történik, ha a parancs lefut egy interaktív shell (csatlakozik a terminál), anélkül, (És nélküli átirányítás). Tehát tegyük fel, hogy a már begépelt egyszerűen ize (példaként a parancs), akkor:
- Alkotó folyamat ize.
- Inherits stdin (standard input), stdout (standard kimenetre) és stderr (standard hiba) a héj. Következésképpen, ez is kapcsolódik ugyanazon a terminálon.
- Ha a héj kap SIGHUP (jelet küldött a folyamat a veszteséget az értesítést a vezérlő csatlakozások a felhasználói terminál által), akkor is küld SIGHUP folyamat (ami a folyamat általában vezet befejezése).
- Egyébként héj vár (blokkolva), amíg a folyamat befejeződik.
Most lássuk, mi történik, ha lefordítani a folyamat a háttérben, akkor állítsa ize .
Most megtagad eltávolítja a feladatot a feladat listában shell ezért minden fenti albekezdés lehet alkalmazni (beleértve a küldő shell folyamat SIGHUPl jel). Azonban ne feledjük, hogy továbbra is csatlakozik a terminál, így ha a terminál megsemmisül (ami akkor történhet, ha ez egy Pty, mint azok által létrehozott xtermor vagy ssh. És monitoring program befejeződött záró xterm vagy zárási -Connection SSH) programot sikertelen lesz, amint azt a megtiszteltetés, hogy a szabványos bemenetről olvas és ír a standard kimenetre.
Mi odelaet nohup. Egyrészt, hogy aktívan a folyamatokat elkülöníti a terminál:
Ne feledje, hogy nohup nem távolítja el a folyamatot a vezérlő shell feladatokat is beteszi a háttérben (de nohup feladata az előtérben szinte használhatatlan, akkor általában kezdődik ). Például, ellentétben megtagad. shell is jelezni fogja, ha a feladat befejezése nohup (persze, ha a héjat le nem zárt ezt).
Ha együtt használják, mindhárom megtagad. nohup és . A folyamat futni fog a háttérben, hogy eltávolítják a héjat ellenőrzési feladatok és hatékonyan le a terminál.
nohup utasításokat hajt végre figyelmen kívül hagyva bontja jeleket.
Nohup lehetséges opciókat:
Ha a szabványos bemenet egy terminál, úgy ez a fájl nem olvasható.
Ha a szabványos kimenet egy terminál, a kimenő hozzáadjuk a «nohup.out», ha lehetséges, egyébként «$ HOME / nohup.out».
Ha standard hiba egy terminál, akkor átirányítja a szabványos kimenetre. Írni a kimenetet egy fájlba, használjon «nohup parancs> FILE”.
Megjegyzés: A héj lehet saját verzióját nohup. amely általában kiterjed az itt leírt változatot. Kérjük, olvassa el a dokumentációt a shell megtudni a lehetőségeket támogat.
Megjegyzés alapul források:
Share „Hogyan zárjuk a terminál működési nélkül megöli a csapat”