Řešení 1:
Nejlepší způsob je použít screen
(na serveru), chcete-li spustit relaci pro spuštění příkazu, a poté odpojit obrazovku, aby pokračovala v chodu a vy můžete dělat jiné věci, nebo se jen odpojit od serveru. Další možností je použít nohup
v kombinaci s &
takže byste měli nohup <command> &
Řešení 2:
Můžete také použít disown
pokud jste proces již zahájili bez screen
nebo nohup
Řešení 3:
Stávající odpovědi mohou fungovat dobře, ale potřeboval jsem něco pro BusyBox (shell a sada nástrojů pro minimální hardware, jako jsou domácí routery). Můj systém nemá screen
, dtach
, at
, disown
, nebo dokonce nohup
! Takže díky tbc0 na SO (odkaz) jsem našel tento klenot. Okamžitě se vrátí, ale proces serveru pokračuje:
ssh myserver 'sleep 100 >&- 2>&- <&- &'
Nebo, pokud je potřeba více příkazů:
ssh myserver '(echo one; sleep 100; echo two; sleep 200) >&- 2>&- <&- &'
Vysvětlení:
>&-
- zavřete stdout rukojeť2>&-
- zavřít stderr<&-
- zavřít stdin&
- dát proces na pozadí
To nepoužívá žádné externí programy a mělo by fungovat přes ksh, ash, Bourne shell, bash atd.