-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path3.Linux Shell Scripting-Gestión de Procesos.txt
111 lines (67 loc) · 4.7 KB
/
3.Linux Shell Scripting-Gestión de Procesos.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Proceso huérfano : si por casualidad el proceso principal finaliza, el proceso secundario se convierte en un proceso huérfano.
El proceso que creó el proceso principal,como el proceso de abuelos, se convierte en el padre del proceso de huérfano.
En el último recurso, el initproceso se convierte en el padre del proceso huérfano.
Proceso Zombie : cada proceso tiene una estructura de datos llamada proceso mesa de control.
Esto se mantiene en el sistema operativo.
Esta tabla contiene la información sobre todos los procesos secundarios creados por el proceso principal.
Si, por casualidad, el proceso principal duerme o se suspende debido a alguna razón y el proceso hijo finaliza,
entonces el proceso principal no puede recibir la información sobre la terminación del proceso hijo.
En tales casos, el proceso hijo que se ha terminado se denomina proceso zombie. Cuando el proceso principal se despierta,
recibiráuna señal con respecto al niño la terminación del proceso y la estructura de datos del bloque de control de proceso se actualizarán.
La terminación del proceso hijo se completa.
Proceso Daemon : Si nosotros imprimimos cualquier texto con
$ echo "Hello"
se imprimirá en el mismo terminal .
Hay ciertos procesos que no están asociados con ningún terminal.
Tales procesos se llaman procesos daemon. Estos procesos se ejecutan en segundo plano.
Una ventaja del proceso del daemon es que son inmunes a los cambios que suceden en el shell Bash, que lo ha creado.
Cuando queremos ejecutar ciertos procesos en segundo plano, como servidor DHCP, etc., entonces los procesos daemon son muy útiles.
************************************************************************************************************************************************
Monitoreo de procesos usando ps
************************************************************************************************************************************************
$ ps //enumerar procesos asociado(PID) asociado con el terminal actual de shell Bash
$ ps –f //enumerar procesos asociado(PID) junto con el ID del proceso principal(PPID) asociado con el terminal actual de shell Bash
$ ps –lf //enumerar procesos(PID) con el ID del proceso principal(PPID) junto con el estado del proceso{
La columna S (state) muestra el estado actual de un proceso
R for running
S for suspended state
}
$ ps –ef //enumerar todos los procesos que se ejecutan en el sistema operativo, incluidos los procesos del sistema{
Los procesos con []son threads del kernel
}
ps –ef | grep "process_name" // encontrar un proceso particular
Todos muestran el UID (ID de usuario) de quien creó el proceso.
{------------***************************************************************************************************************************************
-------------Matar procesos
-------------***************************************************************************************************************************************
El comando kill funciona con flags ,para ver estas
$ kill –l
Cuando ingresamos $ kill, el sistema operativo envía la flag SIGTERM al proceso.
Cuando ingresamos $ kill -9, el sistema operativo envía la flag SIGKILL al proceso.
$ kill pid_of_process_to_be_killed
$ pkill command_name
$ pkill sleep
Si no funciona el comando kill o pkill
$ kill -9 pid_of_process_to_be_killed
$ pkill -9 command_name
}
************************************************************************************************************************************************
Gestión de procesos
************************************************************************************************************************************************
En primer plano se ejecutan todos los comandos ejecutados en terminal .
$ sleep 10000 //El proceso sleep durará 10000 segundos
Ctrl + C finaliza el proceso,Ctrl + Z suspende el proceso.
En segundo plano se ejecutan los comandos terminamos con &
$ sleep 10000 &
$ jobs {//enumera todos los jobs que se ejecutan en el terminal,incluidos los jobs en primer plano y en segundo plano
//[] es el ID del job
// + ó - indica que el comando recibirá fg o bg por defecto
}
Pasar un proceso ejecutandose en segundo plano a primer plano
$ fg 3 //El proceso con ID 3 se ejecutará en primer plano.
Pasar un proceso suspendido a ejecución en segundo plano
$ bg 3
$ jobs –l // Listar los procesos por PID (ID de Proceso)
$ kill pid or
$ kill %job_id // Mata el trabajo con job_ID
$ kill %3