GNU/Linux >> Linux Esercitazione >  >> Linux

Ssh:come rifiutare un processo in esecuzione e associarlo a una nuova shell dello schermo?

Ho un programma in esecuzione su una shell SSH. Voglio metterlo in pausa ed essere in grado di riattivarne l'esecuzione quando torno.

Un modo in cui ho pensato di farlo era trasferire la sua proprietà su una shell dello schermo, mantenendola così in esecuzione.

C'è un modo diverso di procedere?

Risposta accettata:

Puoi revocare la "proprietà" del programma dalla shell con il disown integrato:

# press Ctrl+Z to suspend the program
bg
disown

Tuttavia questo dice solo alla shell di non inviare un SIGHUP segnala al programma quando la shell esce. Il programma manterrà qualsiasi connessione che ha con il terminale, di solito come input, output e flussi di errore standard. Non c'è modo di ricollegarli a un altro terminale. (Lo schermo funziona emulando un terminale per ogni finestra, quindi i programmi sono allegati alla finestra dello schermo.)

È possibile ricollegare i descrittori di file a un file diverso allegando il programma in un debugger (cioè usando ptrace ) e facendolo chiamare open , dup e close . Ci sono alcuni strumenti che fanno questo; questo è un processo complicato e a volte si bloccano invece il processo. Le possibilità includono (collegamenti raccolti dalle risposte a Come posso rinnegare un processo in esecuzione e associarlo a una nuova shell dello schermo? e Posso nohup/schermare un processo già avviato?):

  • afferra (e il criopide più ambizioso)
  • nervosi
  • reindirizzamento
  • rettile
  • Retta

Linux
  1. Come programmare con Bash:sintassi e strumenti

  2. 5 modi per mantenere in esecuzione sessioni e processi SSH remoti dopo la disconnessione

  3. Come elencare le sessioni dello schermo in esecuzione?

  4. Come fermare un processo dello schermo in Linux?

  5. Come staccare la sessione ssh senza uccidere un processo in esecuzione?

Come installare e utilizzare lo schermo Linux?

Nozioni di base su Linux:come creare e installare chiavi SSH sulla shell

Come trovare e uccidere i processi in esecuzione in Linux

Come trovare l'ID di processo di un programma e ucciderlo [Suggerimento rapido]

Come installare e utilizzare Nu Shell su Linux

Come scrivere ed eseguire un programma C in Linux