1 00:00:07,881 --> 00:00:09,753 Você tem percebido que o seu sistema 2 00:00:09,753 --> 00:00:13,383 está se comportando de uma maneira não comum. 3 00:00:13,383 --> 00:00:17,211 Uma série de processos está consumindo recursos desnecessários 4 00:00:17,211 --> 00:00:19,624 e você precisa tomar uma decisão. 5 00:00:20,624 --> 00:00:23,928 Um dos comandos mais utilizados para o envio de sinais a processos 6 00:00:23,928 --> 00:00:25,791 é o comando "Kill". 7 00:00:25,791 --> 00:00:27,935 Comando "kill", do inglês "matar", 8 00:00:27,935 --> 00:00:30,732 não necessariamente mata os processos. 9 00:00:30,732 --> 00:00:32,443 O correto é afirmar que ele envia 10 00:00:32,443 --> 00:00:34,973 um determinado sinal para o processo. 11 00:00:34,973 --> 00:00:38,106 Eu posso enviar um sinal para o processo parar, 12 00:00:38,106 --> 00:00:42,717 para o processo reiniciar, para o processo ser morto, 13 00:00:42,717 --> 00:00:45,781 para o processo ser suspendido, 14 00:00:45,781 --> 00:00:49,178 enfim, eu posso enviar vários tipos de sinais 15 00:00:49,178 --> 00:00:51,398 para um processo utilizando o comando "kill". 16 00:00:52,571 --> 00:00:55,634 Vamos dar uma olhada em todas as opções que conseguimos explorar, 17 00:00:55,634 --> 00:00:57,575 utilizando o comando "kill". 18 00:00:57,575 --> 00:01:02,048 Primeiramente, eu vou executar o comando "kill -l". 19 00:01:02,817 --> 00:01:05,698 Quando nós executamos esse comando, 20 00:01:05,698 --> 00:01:09,772 ele me dá uma lista de possíveis sinais que eu posso enviar. 21 00:01:09,772 --> 00:01:12,278 Detalhe importante: o comando "kill" aceita 22 00:01:12,278 --> 00:01:16,315 com que eu passe o sinal tanto de forma numérica 23 00:01:16,315 --> 00:01:20,397 quanto através do próprio nome do sinal. 24 00:01:20,397 --> 00:01:21,645 Aqui, nós vamos abordar 25 00:01:21,645 --> 00:01:25,626 somente as principais opções do comando "kill". 26 00:01:25,626 --> 00:01:28,515 Se você tiver interesse em obter mais detalhes, 27 00:01:28,515 --> 00:01:32,362 é só você ler o manual do "kill", o "man kill". 28 00:01:32,362 --> 00:01:35,062 Toda vez que eu quiser enviar um sinal para o processo, 29 00:01:35,062 --> 00:01:39,270 eu tenho que saber qual é o PID do processo. 30 00:01:39,270 --> 00:01:42,373 Então, eu vou executar aqui um processo. 31 00:01:42,373 --> 00:01:47,044 Eu vou enviar esse processo para o segundo plano, parando-o, 32 00:01:47,044 --> 00:01:51,383 e, depois, eu vou enviar um outro sinal para o processo com o "kill". 33 00:01:51,383 --> 00:02:00,856 eu vou executar o seguinte comando: grep -ri "linux" / 34 00:02:00,856 --> 00:02:03,695 Eu estou procurando todas as ocorrências da palavra Linux 35 00:02:03,695 --> 00:02:08,066 em todos os arquivos a partir da raiz, de forma recursiva. 36 00:02:08,066 --> 00:02:10,028 Se eu der enter, automaticamente, 37 00:02:10,028 --> 00:02:12,971 ele vai mostrar uma série de informações na tela. 38 00:02:12,971 --> 00:02:14,283 Então, eu vou usar 39 00:02:15,328 --> 00:02:16,976 esse comando 40 00:02:18,112 --> 00:02:21,828 para que ele mande o que encontrar 41 00:02:21,828 --> 00:02:25,133 para dentro do diretório /dev/null 42 00:02:27,362 --> 00:02:29,336 Perceba que o comando está executando, 43 00:02:29,336 --> 00:02:32,192 porém ele está executando em segundo plano. 44 00:02:32,192 --> 00:02:36,264 Se der o comando "ps aux | grep grep", 45 00:02:37,570 --> 00:02:41,034 ele trouxe para mim o comando, que está aqui. 46 00:02:41,034 --> 00:02:44,053 Então, esse é o PID do comando, 47 00:02:44,053 --> 00:02:46,570 que é o número que identifica o processo. 48 00:02:46,570 --> 00:02:51,412 Se eu digitar o comando "jobs", ele vai mostrar todos os processos 49 00:02:51,412 --> 00:02:52,986 que eu executei. 50 00:02:52,986 --> 00:02:57,384 Então, automaticamente, tenho dois processos em execução. 51 00:02:57,384 --> 00:02:59,153 Dois greps rodando. 52 00:02:59,153 --> 00:03:00,403 Vamos imaginar o seguinte: 53 00:03:00,403 --> 00:03:02,994 se você digitar o comando "jobs -l", 54 00:03:02,994 --> 00:03:06,824 automaticamente, ele mostra o PID do processo. 55 00:03:06,824 --> 00:03:09,115 Lembre-se: para poder executar o comando "kill", 56 00:03:09,115 --> 00:03:11,696 eu tenho que saber o PID do processo. 57 00:03:11,696 --> 00:03:14,575 Vamos imaginar que eu queira enviar um sinal 58 00:03:14,575 --> 00:03:17,839 para esse comando de PID 959. 59 00:03:17,839 --> 00:03:20,415 Eu vou usar o comando "kill " 60 00:03:20,415 --> 00:03:22,224 Qual o sinal que eu quero enviar? 61 00:03:22,224 --> 00:03:25,914 Se nós dermos um "kill -l", conseguimos ver todos os sinais. 62 00:03:25,914 --> 00:03:29,049 Vamos imaginar que eu quero mandar um "SIGTSTP", 63 00:03:29,049 --> 00:03:32,287 que é o sinal de parar o processo. 64 00:03:32,287 --> 00:03:37,493 Eu dou um "kill", posso usar a opção -20 65 00:03:37,493 --> 00:03:40,830 e posso usar o PID 959. 66 00:03:40,830 --> 00:03:41,809 Pronto. 67 00:03:41,809 --> 00:03:44,317 Se nós digitarmos agora o comando de "jobs -L", 68 00:03:44,317 --> 00:03:46,933 perceba que o processo está parado. 69 00:03:47,500 --> 00:03:51,407 Esse processo ele não foi morto, ele só foi parado automaticamente. 70 00:03:51,407 --> 00:03:56,813 Eu consigo mandar um sinal para poder continuar esse processo? Sim, 71 00:03:56,913 --> 00:04:02,052 que o menos o sinal que eu vou utilizar e 72 00:04:02,118 --> 00:04:04,821 seguir cont. Que é o 18. 73 00:04:04,821 --> 00:04:09,059 Eu posso tanto colocar o -18 como eu posso colocar menos 74 00:04:09,159 --> 00:04:14,231 seguir count e colocar o número do PID nove cinco nove? 75 00:04:14,298 --> 00:04:17,234 Pronto, se eu der o jobs menos ele, 76 00:04:17,234 --> 00:04:20,704 o processo voltou a ser executado. 77 00:04:20,805 --> 00:04:21,972 O que nós fizemos? 78 00:04:21,972 --> 00:04:26,344 Nós pegamos um processo, enviamos um sinal para ele com Quil para ele parar. 79 00:04:26,444 --> 00:04:28,112 Esse processo parou. 80 00:04:28,112 --> 00:04:32,016 Imagine que fosse um processo que estava consumindo muito recurso na sua máquina 81 00:04:32,083 --> 00:04:34,752 e depois nós demos um sinal 82 00:04:34,752 --> 00:04:38,056 para ele continuar a execução normalmente. 83 00:04:38,123 --> 00:04:43,728 Um outro sinal que a gente pode mandar para o processo é o sinal para ele parar. 84 00:04:43,795 --> 00:04:47,199 O sinal padrão de parada de processo é o sinal 85 00:04:47,265 --> 00:04:50,035 15 ou se Guilherme, 86 00:04:50,035 --> 00:04:54,039 esse sinal permite com que eu pare um processo de forma tranquila. 87 00:04:54,106 --> 00:04:57,710 Sabe quando você dá, por exemplo, o comando System CTL Stop 88 00:04:57,910 --> 00:05:00,012 e o nome do serviço? 89 00:05:00,012 --> 00:05:05,451 Ou você quer que um processo pare de forma tranquila, sem ser parado abruptamente? 90 00:05:05,518 --> 00:05:10,790 A opção padrão de parada de processo é essa -15 ou seguinte. 91 00:05:10,857 --> 00:05:13,860 Eu vou executar agora na tela e vamos ver o que acontece 92 00:05:13,893 --> 00:05:18,264 que o -15 é nove cinco nove que é o PID. 93 00:05:18,365 --> 00:05:19,833 Pronto. 94 00:05:19,833 --> 00:05:22,302 Se der um de obs menos ele, 95 00:05:22,302 --> 00:05:25,605 ele está dizendo que o processo foi terminado. 96 00:05:25,672 --> 00:05:29,476 Processos terminados não podem ser continuados, ou seja, 97 00:05:29,476 --> 00:05:31,578 ele acabou de ser finalizado. 98 00:05:31,578 --> 00:05:34,581 Se nós dermos novamente um de obs menos ele, ele não 99 00:05:34,581 --> 00:05:37,585 mais aparece na listagem dos processos em execução. 100 00:05:37,618 --> 00:05:42,490 Existe uma outra opção do comando kill, que é a qual as pessoas associam 101 00:05:42,490 --> 00:05:48,096 ao fato de ele ser usado para matar, processo que é a opção -9 a opção -9. 102 00:05:48,096 --> 00:05:50,531 Ela manda um sinal chamado seguinte. 103 00:05:50,531 --> 00:05:56,337 Ou seja, ela manda o processo ser morto de forma abrupta. 104 00:05:56,438 --> 00:06:00,408 Se você tiver algum arquivo aberto, os kill não vai se importar. 105 00:06:00,475 --> 00:06:03,478 Se tiver alguém usando esse arquivo, ele não vai se importar, 106 00:06:03,478 --> 00:06:07,449 ele simplesmente vai parar abruptamente o processo. 107 00:06:07,516 --> 00:06:11,353 Apesar dessa formato, desta informação ser enviada direta para o processo, 108 00:06:11,420 --> 00:06:15,791 isso pode ocasionar alguns problemas graves de corrompimento de dados 109 00:06:15,858 --> 00:06:18,761 no seu sistema, como por exemplo, se você mandar 110 00:06:18,761 --> 00:06:22,665 um sinal com -9 para um banco de dados, eu vou executar 111 00:06:22,665 --> 00:06:26,369 ele agora aqui no terminal para vocês entenderem o poder que ele tem. 112 00:06:26,469 --> 00:06:28,538 Vamos executar o comando de OBS menos ele. 113 00:06:28,538 --> 00:06:29,872 Eu ainda tenho o meu processo. 114 00:06:29,872 --> 00:06:34,143 Um outro processo do grep executando com PID 09h30 cinco 115 00:06:34,244 --> 00:06:37,480 vou dar um kill -9 116 00:06:37,547 --> 00:06:39,449 nove meia cinco 117 00:06:39,449 --> 00:06:41,618 e vou dar um de obs menos ele. 118 00:06:41,618 --> 00:06:44,821 Perceba que agora o processo não foi parado, ele foi morto, 119 00:06:45,055 --> 00:06:48,292 então ele mandou um sinal para matar o processo. 120 00:06:48,358 --> 00:06:51,662 É possível matar vários processos ao mesmo tempo? 121 00:06:51,762 --> 00:06:55,132 Sim, nós vamos ver aqui uma lista de processos 122 00:06:55,132 --> 00:06:58,135 e vamos matá los todos com o comando kill. 123 00:06:58,169 --> 00:07:01,172 Eu vou executar novamente o grep 124 00:07:01,372 --> 00:07:04,709 menos erre. 125 00:07:04,809 --> 00:07:07,211 A palavra Linux 126 00:07:07,211 --> 00:07:11,416 na raiz dois 127 00:07:11,482 --> 00:07:16,554 é maior que um, maior que barra dev 128 00:07:16,654 --> 00:07:21,293 ba no mandando para segundo plano. 129 00:07:21,393 --> 00:07:24,262 Pronto, vou rodar algumas outras vezes. 130 00:07:24,262 --> 00:07:28,800 Como executar dez vezes esse comando? 131 00:07:28,901 --> 00:07:34,974 Se nós dermos um de obs menos ele está lá. 132 00:07:35,040 --> 00:07:39,044 Todos os pides dos processos que estão rodando para você 133 00:07:39,044 --> 00:07:42,315 finalizar todos os processos ao mesmo tempo, a gente vai executar o seguinte 134 00:07:42,315 --> 00:07:46,586 comando eu vou capturar todos os pides 135 00:07:46,686 --> 00:07:49,689 e vou executar kill. 136 00:07:49,856 --> 00:07:53,293 E aí podemos passar tanto -9 quanto -15. 137 00:07:53,293 --> 00:07:57,330 Lembrando que -9 vai matar o processo abruptamente e o -15 138 00:07:57,330 --> 00:08:02,169 Ele vai somente parar o processo de forma tranquila. 139 00:08:02,235 --> 00:08:06,607 Vou usar o sinal -9, que é o seguinte que eu 140 00:08:06,673 --> 00:08:08,642 posso passar todos os pides 141 00:08:08,642 --> 00:08:22,556 separado por espaço. 142 00:08:22,657 --> 00:08:24,225 Perceba que realmente dá um trabalho. 143 00:08:24,225 --> 00:08:27,195 Se eu tivesse 100 processos aqui rodando, eu teria que passar ali 144 00:08:27,462 --> 00:08:31,332 os 100 números dos pides. 145 00:08:31,399 --> 00:08:35,036 Se eu der um de obs menos, ele só ficou executando o processo 146 00:08:35,036 --> 00:08:39,674 dez 37 que provavelmente eu pulei ele aqui da lista. 147 00:08:39,741 --> 00:08:48,217 Vamos aproveitar então e treinar por -15. 148 00:08:48,283 --> 00:08:49,251 Pronto, 149 00:08:49,251 --> 00:08:49,952 esse é o comando 150 00:08:49,952 --> 00:08:53,188 que o comando usado para a gente poder enviar um sinal para o processo. 151 00:08:53,355 --> 00:08:56,292 Você pode mandar um sinal para ele continuar, 152 00:08:56,292 --> 00:08:58,527 pedir, suspender para ele reiniciar. 153 00:08:58,527 --> 00:09:01,731 Tudo depende do quanto você precisa 154 00:09:01,797 --> 00:09:06,202 que o sinal seja enviado e como você quer que esse comando se comporte. 155 00:09:06,302 --> 00:09:10,273 O comando kill permite matar processos utilizando o PID, o Process 156 00:09:10,273 --> 00:09:11,708 Identification. 157 00:09:11,708 --> 00:09:14,811 Existem dois comandos que facilitam muito a nossa vida 158 00:09:14,811 --> 00:09:18,748 quando o objetivo é matar vários processos ao mesmo tempo. 159 00:09:18,848 --> 00:09:23,854 Esses comandos são pequenos, é o que o ou o pequeno permite matar processos 160 00:09:23,854 --> 00:09:27,758 utilizando o nome do processo, assim como killall. 161 00:09:27,824 --> 00:09:31,328 Então todos os sinais que eu enviei para os processos usando kill 162 00:09:31,395 --> 00:09:32,596 eu posso fazer também 163 00:09:32,596 --> 00:09:37,568 com um comando pequeno e kill, porém ao invés de eu passar o PID 164 00:09:37,635 --> 00:09:38,936 eu passo 165 00:09:38,936 --> 00:09:41,939 o nome do processo. 166 00:09:42,073 --> 00:09:43,875 Vamos executar agora 167 00:09:43,875 --> 00:09:46,677 eu vou gerar uma lista de processos novamente 168 00:09:46,677 --> 00:09:51,349 com o comando grep. 169 00:09:51,416 --> 00:09:54,419 Cinco processos foram gerados com esse comando grep 170 00:09:54,619 --> 00:09:57,188 grep menos e linux barra 171 00:09:57,188 --> 00:10:00,892 dois maior e um maior que barra deve recomeçar 172 00:10:00,992 --> 00:10:04,896 se nós dermos um de obs menos ele, estão lá todos os processos, 173 00:10:05,130 --> 00:10:07,966 todos os processos tem o nome de grep. 174 00:10:07,966 --> 00:10:10,969 Nesse momento eu vou executar o comando p kill 175 00:10:10,969 --> 00:10:13,138 e eu posso usar todas as opções de sinais 176 00:10:13,138 --> 00:10:16,575 que nós vimos no kill -9, -15. 177 00:10:16,642 --> 00:10:21,714 Eu vou usar a opção -15 para parar esses processos de forma natural 178 00:10:21,814 --> 00:10:25,218 e ao invés de eu passar PID por PID, como eu faria no que eu passo? 179 00:10:25,218 --> 00:10:27,954 Simplesmente o nome do 180 00:10:27,954 --> 00:10:30,290 comando que foi 181 00:10:30,290 --> 00:10:33,927 executado, no caso aqui, o próprio grep. 182 00:10:34,027 --> 00:10:35,028 Quando eu dou um enter, 183 00:10:35,028 --> 00:10:38,865 ele termina todos os processos com o nome grep. 184 00:10:38,932 --> 00:10:42,969 Isso permite com que eu tenha muito mais velocidade na execução do comando 185 00:10:42,969 --> 00:10:48,408 quando eu quiser finalizar um processo ou vários processos utilizando o nome. 186 00:10:48,475 --> 00:10:52,246 O comando kill funciona de maneira parecida com um comando pequeno. 187 00:10:52,312 --> 00:10:57,384 Nós conseguimos matar diversos processos utilizando o nome dos processos. 188 00:10:57,451 --> 00:10:59,286 Eu executar agora novamente o grep 189 00:10:59,286 --> 00:11:03,157 para que a gente possa visualizar isso acontecendo dentro do sistema. 190 00:11:03,224 --> 00:11:05,827 Eu vou executar agora cinco vezes o comando grep 191 00:11:05,827 --> 00:11:10,265 para que gerem os processos e a gente possa utilizar o que o HAL para matá lo. 192 00:11:10,365 --> 00:11:14,369 Uma, duas, três, quatro, cinco. 193 00:11:14,469 --> 00:11:18,139 Se nós executarmos o comando de obs menos ele está lá. 194 00:11:18,206 --> 00:11:21,843 Cinco O processo de execução O nome do processo é grep. 195 00:11:21,943 --> 00:11:25,747 Eu vou usar o kill para poder matar esses processos. 196 00:11:25,814 --> 00:11:28,517 Vou utilizar os mesmo sinais que eu uso no kill e no pq 197 00:11:28,517 --> 00:11:33,088 eu vou colocar por exemplo os ao -9 para matar o processo forçando. 198 00:11:33,188 --> 00:11:37,092 E o comando que quero matar é o todos os comandos que contem o nome grep. 199 00:11:37,159 --> 00:11:41,063 Eu recebi uma mensagem que o comando killall não foi encontrado. 200 00:11:41,130 --> 00:11:43,633 Vamos instalá lo através do comando 201 00:11:43,633 --> 00:11:46,836 apertei install ps misc. 202 00:11:46,903 --> 00:11:55,345 Vou utilizar a opção menos y para ele dizer sim para todos os questionamentos. 203 00:11:55,445 --> 00:11:56,579 Pronto, uma vez instalado 204 00:11:56,579 --> 00:12:00,116 parece me que ele trouxe para mim o kill e ele 205 00:12:00,217 --> 00:12:02,919 eu vou executar novamente o comando kill ao -9 206 00:12:02,919 --> 00:12:07,658 e automaticamente ele matou todos os processos que tinham o nome grep 207 00:12:07,724 --> 00:12:12,563 com esses três comandos kill pq eu e kill nós podemos enviar diversos 208 00:12:12,563 --> 00:12:18,169 sinais aos processos, podemos parar, reiniciar, suspender, continuar. 209 00:12:18,235 --> 00:12:22,473 Ou seja, você pode manipular os processos conforme a sua necessidade 210 00:12:22,573 --> 00:12:25,476 e se tornar ainda mais eficiente 211 00:12:25,476 --> 00:12:28,813 na operação do terminal Linux, utilizando o processo de.