Com iniciar l'ordre Linux en segon pla i desconnectar el procés al terminal

Com Iniciar L Ordre Linux En Segon Pla I Desconnectar El Proces Al Terminal



En aquesta guia, aprendrem com executar una ordre en segon pla i com desconnectar els processos del terminal.

Requisits previs:

Per dur a terme els passos d'aquesta guia, necessiteu els components següents:

  • Un sistema Linux funcional. Aprendre mes sobre configurar una màquina virtual d'Ubuntu a VirtualBox .
  • Accés a a usuari no root amb permís sudo .

Execució dels processos des del terminal

Sempre que s'executa una ordre, els processos es generen sota el terminal. Si el terminal està tancat, tots els processos associats s'acaben automàticament. En determinades situacions, pot ser inconvenient. Per exemple:







  • Gran quantitat de dades de sortida i missatges d'error/diagnòstic
  • Tancament accidental del terminal que comporta la finalització de processos potencialment crítics, etc.

Per fer front a aquests problemes, hi ha un parell d'opcions:



  • Execució dels processos en segon pla
  • Separació dels processos del terminal

Els processos que s'executen en segon pla no aclapararan la sortida del terminal. A més, el terminal és lliure d'executar les ordres addicionals. Per als processos separats, no finalitzaran encara que el terminal estigui tancat.



Iniciant els processos en segon pla

En molts casos, una ordre pot trigar força a completar-se. En general, l'usuari es veu obligat a esperar fins que finalitzi l'ordre. Per exemple, quan utilitzeu un editor de text, l'intèrpret d'ordres no estarà disponible fins que es tanqui l'editor.





Per demostrar-ho, fem servir l'ordre 'sí':

$ home



Mètode 1:

Hi ha un parell de maneres en què podem enviar el procés en execució en segon pla.

Primer, aturem el procés sense finalitzar-lo. Per fer-ho, executeu l'ordre següent i premeu 'Ctrl + Z':

$ 'Hola món' > / dev / nul

Ara, executeu l'ordre 'bg' per enviar el procés en segon pla:

$ bg

Un cop passat a un segon pla, el procés es reprèn. L'ordre següent enumera tots els treballs en execució en segon pla:

$ llocs de treball

Mètode 2:

En el mètode anterior, el procés va començar a executar-se en primer pla. Vam aturar el procés, l'hem enviat a un segon pla i després el vam reprendre. En canvi, podem executar el procés directament en segon pla.

Per fer-ho, afegiu el signe '&' al final de l'ordre:

$ 'Oh Long Johnson' > / dev / nul &

Aquí, els processos generats s'executen automàticament en segon pla. Per verificar-ho, comproveu la llista de treballs en segon pla:

$ llocs de treball

Mètode 3:

També podem llançar els processos en segon pla amb l'ajuda de tmux , un potent multiplexor que pot gestionar múltiples sessions de terminal dins d'una sola finestra. No ve preinstal·lat a Linux. Tanmateix, està disponible per a totes les distribucions principals de Linux. Aprendre mes sobre instal·lació de tmux a Linux .

A l'exemple següent, utilitzem tmux per fer ping a un objectiu i registrar la sortida:

$ tmux nou -d 'ping -c 9 127.0.0.1 > ping.log'

El fitxer de registre verifica si l'ordre s'executa correctament o no:

$ gat ping.log

És només un exemple del que pot fer tmux. Aprendre mes sobre tmux amb exemples .

Tornant les feines al primer pla

Si voleu tornar una feina al primer pla, utilitzem l'ordre 'fg'. També necessitem el número de treball de l'ordre jobs.

Primer, determineu la feina que voleu posar en primer pla:

$ llocs de treball

Ara, utilitzeu l'ordre 'fg':

$ F g %< número de feina >

Separació dels processos del terminal

Qualsevol procés associat a un terminal s'acaba quan es tanca el terminal, tant si s'està executant en primer pla com en segon pla. Per evitar la finalització del procés, dissociem el procés objectiu del terminal/shell.

Mètode 1:

Per negar un procés, primer necessitem un procés de fons:

$ 'qwerty' > / dev / nul &

Comproveu la llista de treballs en segon pla en execució:

$ llocs de treball

Anoteu el número de sèrie del treball de fons de destinació. Ara, utilitzeu l'ordre 'renunciar' per desconnectar-lo del terminal:

$ renegar %< número de feina >

El treball objectiu ara hauria de desaparèixer de la llista de treballs:

$ llocs de treball

Tanmateix, encara podeu veure el procés en funcionament en segon pla:

$ ps a

Mètode 2:

Una altra manera de separar un procés del terminal principal és utilitzar l'ordre 'nohup'. Manté un procés en execució en segon pla fins i tot després de tancar el terminal.

L'ús de 'nohup' és el següent:

$ nohup < comandament > &

Comproveu si la feina s'ha creat correctament:

$ llocs de treball

Mètode 3:

Aquest mètode separa completament el procés objectiu. És una manera més eficaç de desconnectar les aplicacions GUI.

Per exemple, per iniciar el Firefox i desconnectar-lo completament del terminal, utilitzeu l'ordre següent:

$ firefox dev / nul &>/ dev / nul &

Aquí:

  • El /dev/null és un dispositiu especial a Linux que elimina qualsevol dada que s'escriu en ell.
  • A l'ordre anterior, l'entrada es llegeix des i la sortida s'envia a /dev/null . Més informació sobre el altres maneres d'utilitzar /dev/null .

Conclusió

Hem demostrat les diferents maneres d'executar un procés en segon pla. També vam mostrar les maneres de separar un procés del terminal principal. Aquestes tècniques poden ser útils sempre que es treballi amb el terminal o executant un script .

Si necessiteu executar determinades ordres en un patró específic, podem descarregar-lo com a servei systemd . Per a màquines remotes, també podem utilitzar eines de tercers com Ansible per automatitzar gairebé tot .

Feliç informàtica!