En mi ejemplo, estoy ejecutando un comando que tarda mucho en ejecutarse (varias horas).
Realmente no recuerdo si ingresé make o make -j4.
Por supuesto, podría detenerlo y presionar la tecla hacia arriba o verificar el historial para saberlo, pero eso detendría el proceso y no quiero que eso suceda (en caso de que ya esté haciendo make -j4).
¿Hay alguna manera de saber qué comando se está ejecutando sin detener el proceso?
command-line
make
Daniel Viaño
fuente
fuente
pgrep -a make
make
que pueda detenerlo y reiniciarlo, debería continuar donde lo dejó.Respuestas:
Si desea ver la línea de comando completa para cada instancia
make
que se está ejecutando en su computadora, abra una nueva terminal e intente:pgrep
es un programa que busca a través de todos los procesos en su computadora. En este caso, está buscando programas con nombremake
. La opción-a
le indicapgrep
que enumere tanto la ID del proceso como la línea de comando completa para cada proceso coincidente. (Sin-a
, simplemente devolvería la ID del proceso). Para obtener más información sobre las muchas opciones de pgrep, consulteman pgrep
.fuente
pgrep
sería diferente del comando que se escribió en la línea de comando.Mientras la ventana de terminal está activa, puede pausar (suspender) el proceso presionando Ctrl+ Z. Luego puede empujar el trabajo en segundo plano escribiendo
bg
(su trabajo ahora continuará en segundo plano y al mismo tiempo puede trabajar en la línea de comando; esto es equivalente a comenzar un trabajo&
al final de la línea de comando). Luego use las flechas del cursor (arriba y abajo) para ver qué comando usó. Si lo desea (pero esto no es necesario), puede obtener su trabajo en primer plano escribiendofg
.fuente
for X in {1..1000} ; do sleep $X ; done
ese, el bucle se interrumpiría y las iteraciones restantes no sucederían.jobs
, como se muestra en la respuesta de @ ichabod), y luego reanudarlo a través defg
.Hago algo como Stefan: ^ Z para pausar el trabajo, y luego corro
jobs
. Si tiene varios procesos en ejecución, es posible que tenga que clasificar qué trabajo fue el que detuvo, pero esto generalmente le dará la línea de comando. Luego correfg
para continuar la ejecución.fuente
Una buena manera de ver esto dinámicamente es ejecutar top, y esto le indica el estado general del sistema y los procesos en ejecución en el sistema.
Hacer un 'ps ux' muestra sus procesos junto con pid y otra información, puede usar la habilidad para eliminar algunos de ellos si lo desea, la página de manual para eso es un buen recurso, y hacer una habilidad o matar -9 obtiene procesos pegajosos colgado en el dispositivo, espera, etc. También puede enviar otras señales a procesos como -hup, reinicia los demonios, etc.
La parte superior es agradable ya que muestra el tamaño del proceso, el tiempo transcurrido y los estados actuales de la CPU y el de la memoria y el intercambio.
A menudo hago $ make> & make.out & y luego less o tail -f en el archivo de registro make.out. Desde ahora, make se separa como un proceso de mi sesión de shell.
fuente