{"id":16017,"date":"2024-08-01T14:19:08","date_gmt":"2024-08-01T17:19:08","guid":{"rendered":"https:\/\/categoriaoutros.com.br\/?p=16017"},"modified":"2024-08-01T14:19:12","modified_gmt":"2024-08-01T17:19:12","slug":"linux-lpi-101-3-alternar-runlevels-boot-targets-desligar-e-reiniciar-o-sistema","status":"publish","type":"post","link":"https:\/\/categoriaoutros.com.br\/?p=16017","title":{"rendered":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema"},"content":{"rendered":"\n<p>Hoje iremos falar sobre processos que servem para controlar certas fun\u00e7\u00f5es do sistema. Esses processos s\u00e3o chamados de <strong>daemons<\/strong> ou de <strong>servi\u00e7os<\/strong>.<\/p>\n\n\n\n<p>Muitas vezes precisaremos interromper, iniciar(start) ou reiniciar(restart) alguns servi\u00e7os; poderemos tamb\u00e9m fazer servi\u00e7os iniciarem automaticamente ap\u00f3s o start do sistema operacional.  Para isso, podemos usar scripts ou programas espec\u00edficos.<\/p>\n\n\n\n<p>Dentre esses programas para controlar os servi\u00e7os, temos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SysVinit( ou System V ou apenas SysV)<\/strong>: usado ainda em sistemas unix-like. No linux foi brutalmente substitu\u00eddo pelo systemd.<\/li>\n\n\n\n<li><strong>systemd<\/strong>: \u00e9 o mais famoso e usado atualmente.<\/li>\n\n\n\n<li><strong>Upstart<\/strong>: esse \u00e9 antigo, foi uma tentativa da Canonical no Ubuntu e n\u00e3o teve sucesso.<\/li>\n<\/ul>\n\n\n\n<p>Esses programas acima s\u00e3o chamados de <strong>gerenciadores de servi\u00e7os<\/strong>. O gerenciador de servi\u00e7o \u00e9 o primeiro programa a ser iniciado pelo kernel, portanto seu PID (n\u00famero de identifica\u00e7\u00e3o do processo) \u00e9 sempre 1.<\/p>\n\n\n\n<p>Veja o post anterior: <a href=\"https:\/\/categoriaoutros.com.br\/?p=16003\">Linux LPI 101.2: Detalhes sobre In\u00edcio ou boot do sistema<\/a><\/p>\n\n\n\n<p>Poder\u00e1 gostar tamb\u00e9m de: <a href=\"https:\/\/categoriaoutros.com.br\/?p=15965\">Linux LPI 101.1: Identificar e editar configura\u00e7\u00f5es de hardware<\/a><\/p>\n\n\n\n<p>Abaixo est\u00e1 uma tabela com resumo do que iremos ver hoje nesse post.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><strong>Item<\/strong><\/th><th><strong>Tipo<\/strong><\/th><th><strong>Descri\u00e7\u00e3o<\/strong><\/th><th><strong>Exemplo<\/strong><\/th><\/tr><\/thead><tbody><tr><td><strong>\/etc\/inittab<\/strong><\/td><td>Arquivo<\/td><td>Arquivo de configura\u00e7\u00e3o do SysV init usado para definir os runlevels e os processos que devem ser iniciados em cada runlevel.<\/td><td>N\u00e3o aplic\u00e1vel<\/td><\/tr><tr><td><strong>shutdown<\/strong><\/td><td>Comando<\/td><td>Comando usado para desligar ou reiniciar o sistema de forma segura. Pode agendar o desligamento ou reinicializa\u00e7\u00e3o em um hor\u00e1rio espec\u00edfico.<\/td><td><code>shutdown -h now<\/code> (desligar agora)<\/td><\/tr><tr><td><strong>init<\/strong><\/td><td>Comando<\/td><td>Processo pai de todos os outros processos em sistemas Unix-like. \u00c9 respons\u00e1vel por iniciar todos os outros processos com base no runlevel definido.<\/td><td><code>init 3<\/code> (muda para o runlevel 3)<\/td><\/tr><tr><td><strong>\/etc\/init.d\/<\/strong><\/td><td>Diret\u00f3rio<\/td><td>Diret\u00f3rio que cont\u00e9m scripts de inicializa\u00e7\u00e3o e parada de servi\u00e7os em sistemas que utilizam SysV init.<\/td><td><code>ls \/etc\/init.d\/<\/code> (listar scripts)<\/td><\/tr><tr><td><strong>telinit<\/strong><\/td><td>Comando<\/td><td>Comando usado para alterar o runlevel do sistema no SysV init. Ele \u00e9 um link simb\u00f3lico para o comando <code>init<\/code>.<\/td><td><code>telinit 5<\/code> (muda para o runlevel 5)<\/td><\/tr><tr><td><strong>systemd<\/strong><\/td><td>Sistema de Inicializa\u00e7\u00e3o<\/td><td>Sistema de inicializa\u00e7\u00e3o e gerenciamento de servi\u00e7os moderno que substituiu o SysV init em muitas distribui\u00e7\u00f5es Linux.<\/td><td>N\u00e3o aplic\u00e1vel<\/td><\/tr><tr><td><strong>systemctl<\/strong><\/td><td>Comando<\/td><td>Ferramenta de linha de comando para gerenciar servi\u00e7os e unidades no systemd, como iniciar, parar, reiniciar servi\u00e7os, al\u00e9m de verificar o status.<\/td><td><code>systemctl start nginx<\/code> (inicia o servi\u00e7o nginx)<\/td><\/tr><tr><td><strong>\/etc\/systemd\/<\/strong><\/td><td>Diret\u00f3rio<\/td><td>Diret\u00f3rio de configura\u00e7\u00e3o do systemd, contendo arquivos de configura\u00e7\u00e3o e scripts de servi\u00e7os personalizados.<\/td><td><code>ls \/etc\/systemd\/<\/code> (listar arquivos)<\/td><\/tr><tr><td><strong>\/usr\/lib\/systemd\/<\/strong><\/td><td>Diret\u00f3rio<\/td><td>Diret\u00f3rio que cont\u00e9m arquivos de unidade e scripts de servi\u00e7os padr\u00e3o fornecidos pelo systemd.<\/td><td><code>ls \/usr\/lib\/systemd\/system\/<\/code> (listar unidades)<\/td><\/tr><tr><td><strong>wall<\/strong><\/td><td>Comando<\/td><td>Comando usado para enviar mensagens para todos os usu\u00e1rios conectados ao sistema, exibindo-as em seus terminais.<\/td><td>`echo &#8220;Manuten\u00e7\u00e3o \u00e0s 18h&#8221; | wall<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Gerenciador de Servi\u00e7o SysVinit<\/h2>\n\n\n\n<p>O SysVinit possui <strong>estados do sistema<\/strong> prontos, ou, melhor,  estados predefinidos para o sistema. A esses estados predefiidos chamamos de <strong>n\u00edveis de execu\u00e7\u00e3o.<\/strong> Os n\u00edveis de execu\u00e7\u00e3o s\u00e3o numerados de 0 a 6:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Runlevel 0:<\/strong> Desliga o sistema. Execute no shell: <kbd><strong>init 0<\/strong><\/kbd><\/li>\n\n\n\n<li><strong>Runlevel 1:<\/strong> Modo monousu\u00e1rio (usado para manuten\u00e7\u00e3o). Execute no shell: <kbd><strong>init 1<\/strong><\/kbd><\/li>\n\n\n\n<li><strong>Runlevel 2:<\/strong> Modo multiusu\u00e1rio sem rede. Praticamente nunca \u00e9 usado. Execute no shell: <kbd><strong>init <\/strong><\/kbd><strong>2<\/strong><\/li>\n\n\n\n<li><strong>Runlevel 3:<\/strong> Modo multiusu\u00e1rio com rede (sem GUI). Execute no shell: <kbd><strong>init 3<\/strong><\/kbd><\/li>\n\n\n\n<li><strong>Runlevel 4:<\/strong> Personalizado (n\u00e3o utilizado por padr\u00e3o). Praticamente nunca \u00e9 usado. Execute no shell: <kbd><strong>init 4<\/strong><\/kbd><\/li>\n\n\n\n<li><strong>Runlevel 5:<\/strong> Modo multiusu\u00e1rio com rede e GUI. Execute no shell: <kbd><strong>init 5<\/strong><\/kbd><\/li>\n\n\n\n<li><strong>Runlevel 6:<\/strong> Reinicializa o sistema. Execute no shell: <kbd><strong>init 6<\/strong><\/kbd><\/li>\n<\/ul>\n\n\n\n<p><em>\/sbin\/init<\/em> \u00e9 o programa respons\u00e1vel por gerenciar esses n\u00edveis. Podemos executar \/sbin\/init ou apenas init. Durante a inicializa\u00e7\u00e3o do sistema, o programa init identifica o n\u00edvel de execu\u00e7\u00e3o solicitado, definido por um par\u00e2metro do kernel ou no arquivo<em> \/etc\/inittab <\/em>e carrega os scripts associados listados ali para o n\u00edvel de execu\u00e7\u00e3o especificado.<\/p>\n\n\n\n<p>O arquivo \/etc\/inittab tem conte\u00fado com essa sintaxe:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id:runlevels:action:process<\/code><\/pre>\n\n\n\n<p>Aqui est\u00e1 um exemplo real:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>id:5:initdefault:\nsi::sysinit:\/etc\/init.d\/rcS\nl0:0:wait:\/etc\/rc.d\/rc 0<\/code><\/pre>\n\n\n\n<p>Onde,<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>id:5:initdefault:<\/code><\/strong>: Define o runlevel 5 como o padr\u00e3o para inicializa\u00e7\u00e3o.<\/li>\n\n\n\n<li><strong><code>si::sysinit:\/etc\/init.d\/rcS<\/code><\/strong>: Durante a inicializa\u00e7\u00e3o do sistema, o script <code>\/etc\/init.d\/rcS<\/code> ser\u00e1 executado.<\/li>\n\n\n\n<li><strong><code>l0:0:wait:\/etc\/rc.d\/rc 0<\/code><\/strong>: No runlevel 0 (desligamento), o script <code>\/etc\/rc.d\/rc 0<\/code> ser\u00e1 executado e o sistema esperar\u00e1 que ele termine antes de prosseguir.<\/li>\n<\/ul>\n\n\n\n<p>Vamos detalhar melhor esse formato de arquivo:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>id<\/code><\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> <em>Identificador \u00fanico<\/em> para a linha de configura\u00e7\u00e3o. Normalmente, \u00e9 uma sequ\u00eancia de 2 a 4 caracteres que identifica essa entrada espec\u00edfica no arquivo.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>si<\/code>, <code>l0<\/code>, <code>ca<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>runlevels<\/code><\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Especifica em quais runlevels essa a\u00e7\u00e3o ser\u00e1 executada. Pode ser um \u00fanico n\u00famero (ex.: <code>3<\/code>) ou uma sequ\u00eancia de n\u00fameros (ex.: <code>2345<\/code>), representando os runlevels para os quais a configura\u00e7\u00e3o se aplica.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>2345<\/code> (aplica-se aos runlevels 2, 3, 4 e 5)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>action<\/code><\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Define a a\u00e7\u00e3o que ser\u00e1 tomada para o processo especificado. As a\u00e7\u00f5es comuns incluem:\n<ul class=\"wp-block-list\">\n<li><strong><code>respawn<\/code><\/strong>: Reinicia o processo se ele terminar.<\/li>\n\n\n\n<li><strong><code>wait<\/code><\/strong>: Executa o processo uma vez, aguardando sua finaliza\u00e7\u00e3o antes de continuar.<\/li>\n\n\n\n<li><strong><code>once<\/code><\/strong>: Executa o processo uma vez sem esperar.<\/li>\n\n\n\n<li><strong><code>initdefault<\/code><\/strong>: Define o runlevel padr\u00e3o que o sistema deve iniciar.<\/li>\n\n\n\n<li><strong><code>sysinit<\/code><\/strong>: O processo ser\u00e1 executado ap\u00f3s a inicializa\u00e7\u00e3o do sistema, qualquer que seja o n\u00edvel de execu\u00e7\u00e3o. O campo runlevels \u00e9 ignorado.<\/li>\n\n\n\n<li><strong>boot<\/strong>: O processo ser\u00e1 executado durante a inicializa\u00e7\u00e3o do sistema. O campo runlevels \u00e9 ignorado.<\/li>\n\n\n\n<li><strong>bootwait<\/strong>: O processo ser\u00e1 executado durante a inicializa\u00e7\u00e3o do sistema e o init aguardar\u00e1 sua conclus\u00e3o para continuar. O campo runlevels \u00e9 ignorado.<\/li>\n\n\n\n<li><strong>ctrlaltdel<\/strong>: O processo ser\u00e1 executado quando o processo init receber o sinal SIGINT, disparado quando o atalho de teclado Ctrl + Alt + Del for pressionado.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>respawn<\/code>, <code>wait<\/code>, <code>once<\/code>, <code>initdefault<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong><code>process<\/code><\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Especifica o comando ou script que ser\u00e1 executado. Pode ser um caminho completo para um script ou bin\u00e1rio que ser\u00e1 executado no runlevel indicado.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>\/sbin\/getty 38400 tty1<\/code>, <code>\/etc\/rc.d\/rc 3<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Veja um exemplo mais completo do arquivo \/etc\/inittab:<\/p>\n\n\n\n<pre>\n# Default runlevel\nid:3:initdefault:\n\n# Configuration script executed during boot\nsi::sysinit:\/etc\/init.d\/rcS\n\n# Action taken on runlevel S (single user)\n~:S:wait:\/sbin\/sulogin\n# Configuration for each execution level\nl0:0:wait:\/etc\/init.d\/rc 0\nl1:1:wait:\/etc\/init.d\/rc 1\nl2:2:wait:\/etc\/init.d\/rc 2\nl3:3:wait:\/etc\/init.d\/rc 3\nl4:4:wait:\/etc\/init.d\/rc 4\nl5:5:wait:\/etc\/init.d\/rc 5\nl6:6:wait:\/etc\/init.d\/rc 6\n\n# Action taken upon ctrl+alt+del keystroke\nca::ctrlaltdel:\/sbin\/shutdown -r now\n\n# Enable consoles for runlevels 2 and 3\n1:23:respawn:\/sbin\/getty tty1 VC linux\n2:23:respawn:\/sbin\/getty tty2 VC linux\n3:23:respawn:\/sbin\/getty tty3 VC linux\n4:23:respawn:\/sbin\/getty tty4 VC linux\n\n# For runlevel 3, also enable serial\n# terminals ttyS0 and ttyS1 (modem) consoles\nS0:3:respawn:\/sbin\/getty -L 9600 ttyS0 vt320\nS1:3:respawn:\/sbin\/mgetty -x0 -D ttyS1\n<\/pre>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Toda vez que \/etc\/inittab for modificado voc\u00ea ter\u00e1 que executar o comando <strong>telinit<\/strong> <strong>q<\/strong>. O &#8220;q&#8221; ou &#8220;Q&#8221; funcionar\u00e3o.<\/p><\/blockquote><\/figure>\n\n\n\n<p>O comando <kbd><strong>telinit q<\/strong><\/kbd> far\u00e1 com que o init recarregue sua configura\u00e7\u00e3o.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Pastas do SysVinit<\/h4>\n\n\n\n<p>Os scripts usados pelo init para configurar cada n\u00edvel de execu\u00e7\u00e3o ficam armazenados no diret\u00f3rio \/etc\/init.d\/.<\/p>\n\n\n\n<p><strong>Diret\u00f3rios:<\/strong><code> \/etc\/rcX.d\/<\/code> (onde <code>X<\/code> \u00e9 o n\u00famero do runlevel, de 0 a 6)<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\/etc\/rc0.d\/<\/strong>: Associado ao runlevel 0 (desligamento do sistema).<\/li>\n\n\n\n<li><strong>\/etc\/rc1.d\/<\/strong>: Associado ao runlevel 1 (modo monousu\u00e1rio).<\/li>\n\n\n\n<li><strong>\/etc\/rc2.d\/<\/strong>: Associado ao runlevel 2 (modo multiusu\u00e1rio sem rede, em algumas distribui\u00e7\u00f5es).<\/li>\n\n\n\n<li><strong>\/etc\/rc3.d\/<\/strong>: Associado ao runlevel 3 (modo multiusu\u00e1rio com rede).<\/li>\n\n\n\n<li><strong>\/etc\/rc4.d\/<\/strong>: Associado ao runlevel 4 (n\u00e3o utilizado por padr\u00e3o, pode ser personalizado).<\/li>\n\n\n\n<li><strong>\/etc\/rc5.d\/<\/strong>: Associado ao runlevel 5 (modo multiusu\u00e1rio com rede e interface gr\u00e1fica).<\/li>\n\n\n\n<li><strong>\/etc\/rc6.d\/<\/strong>: Associado ao runlevel 6 (reinicializa\u00e7\u00e3o do sistema).<\/li>\n<\/ul>\n\n\n\n<p>Cada diret\u00f3rio <code>\/etc\/rcX.d\/<\/code> cont\u00e9m <strong>links simb\u00f3licos<\/strong> para scripts de inicializa\u00e7\u00e3o que residem em <code>\/etc\/init.d\/<\/code>.<\/p>\n\n\n\n<p>Ao mudar para um determinado runlevel, o sistema executa os scripts nos diret\u00f3rios correspondentes, iniciando ou parando servi\u00e7os conforme necess\u00e1rio para configurar o ambiente adequado ao runlevel em quest\u00e3o.<\/p>\n\n\n\n<p>Esses links simb\u00f3licos come\u00e7am com: <\/p>\n\n\n\n<p><strong>&#8220;S&#8221;<\/strong> (Start): Indica que o script deve ser iniciado ao entrar no runlevel.<\/p>\n\n\n\n<p><strong>&#8220;K&#8221;<\/strong> (Kill): Indica que o script deve ser encerrado ao sair do runlevel.<\/p>\n\n\n\n<p>Os n\u00fameros ap\u00f3s &#8220;S&#8221; ou &#8220;K&#8221; determinam a ordem em que os scripts s\u00e3o executados (ex.: <code>S20nginx<\/code>).<\/p>\n\n\n\n<p>abaixo executo ls \/etc\/rc* para listar todos os diret\u00f3rios iniciados em rc<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ ls \/etc\/rc\nrc0.d\/ rc1.d\/ rc2.d\/ rc3.d\/ rc4.d\/ rc5.d\/ rc6.d\/ rcS.d\/<\/pre>\n\n\n\n<p>Vejamos o conte\u00fado de \/etc\/rc3.d<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ ls -l \/etc\/rc3.d\/\ntotal 0\nlrwxrwxrwx 1 root root 29 mai  7 11:49 <font color=\"#00CDCD\"><b>K01apache-htcacheclean<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/apache-htcacheclean<\/b><\/font>\nlrwxrwxrwx 1 root root 18 mai 11 08:43 <font color=\"#00CDCD\"><b>K01corosync<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/corosync<\/b><\/font>\nlrwxrwxrwx 1 root root 14 mai  7 11:52 <font color=\"#00CDCD\"><b>K01drbd<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/drbd<\/b><\/font>\nlrwxrwxrwx 1 root root 14 mai 11 08:43 <font color=\"#00CDCD\"><b>K01logd<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/logd<\/b><\/font>\nlrwxrwxrwx 1 root root 19 mai 11 08:43 <font color=\"#00CDCD\"><b>K01pacemaker<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/pacemaker<\/b><\/font>\nlrwxrwxrwx 1 root root 17 mai  7 11:49 <font color=\"#00CDCD\"><b>S01apache2<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/apache2<\/b><\/font>\nlrwxrwxrwx 1 root root 26 mai  4 10:20 <font color=\"#00CDCD\"><b>S01console-setup.sh<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/console-setup.sh<\/b><\/font>\nlrwxrwxrwx 1 root root 14 mai  4 10:17 <font color=\"#00CDCD\"><b>S01cron<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/cron<\/b><\/font>\nlrwxrwxrwx 1 root root 14 mai  4 12:45 <font color=\"#00CDCD\"><b>S01dbus<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/dbus<\/b><\/font>\nlrwxrwxrwx 1 root root 15 mai  7 11:52 <font color=\"#00CDCD\"><b>S01exim4<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/exim4<\/b><\/font>\nlrwxrwxrwx 1 root root 17 mai  7 13:04 <font color=\"#00CDCD\"><b>S01mariadb<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/mariadb<\/b><\/font>\nlrwxrwxrwx 1 root root 18 mai 11 08:43 <font color=\"#00CDCD\"><b>S01openhpid<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/openhpid<\/b><\/font>\nlrwxrwxrwx 1 root root 14 mai 11 08:43 <font color=\"#00CDCD\"><b>S01pcsd<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/pcsd<\/b><\/font>\nlrwxrwxrwx 1 root root 19 mai 11 08:43 <font color=\"#00CDCD\"><b>S01pcsd-ruby<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/pcsd-ruby<\/b><\/font>\nlrwxrwxrwx 1 root root 15 mai  7 13:03 <font color=\"#00CDCD\"><b>S01rsync<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/rsync<\/b><\/font>\nlrwxrwxrwx 1 root root 13 mai  7 12:12 <font color=\"#00CDCD\"><b>S01ssh<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/ssh<\/b><\/font>\nlrwxrwxrwx 1 root root 14 jul 29 13:33 <font color=\"#00CDCD\"><b>S01sudo<\/b><\/font> -&gt; <font color=\"#00CD00\"><b>..\/init.d\/sudo<\/b><\/font><\/pre>\n\n\n\n<p>os arquivos nesses diret\u00f3rios s\u00e3o apenas links simb\u00f3licos para os scripts reais em \/etc\/init.d\/. Isso Links s\u00e3o usados porque o mesmo script pode ser usado por diferentes n\u00edveis de execu\u00e7\u00e3o.<\/p>\n\n\n\n<p>Como saber a runlevel ou n\u00edvel de execu\u00e7\u00e3o que estamos atualemente? Estamos na 1, na 3, na 5? Para saber basta executar o comando runlevel:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ runlevel\nN 3<\/code><\/pre>\n\n\n\n<p>A letra N na sa\u00edda mostra que o n\u00edvel de execu\u00e7\u00e3o n\u00e3o mudou desde a \u00faltima inicializa\u00e7\u00e3o. e 3 \u00e9 o runlevel atual.<\/p>\n\n\n\n<p>Como sair de uma runlevel e entrar em outra? Basta executar o comando &#8220;init x&#8221;, onde  x \u00e9 o n\u00famero da runlevel desejada. Abaixo iremos reiniciar o sistema<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>init 6<\/code><\/pre>\n\n\n\n<p>Podemos usar tanto <strong>init<\/strong> quanto <strong>telinit<\/strong>. Abaixo, <kbd><strong>telinit s<\/strong><\/kbd> ou <kbd><strong>telinit S<\/strong><\/kbd> levar\u00e1 o sistema para o n\u00edvel de execu\u00e7\u00e3o 1.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>telinit s<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">systemd<\/h2>\n\n\n\n<p>unidades (units) \u00e9 como o systemd chama os servi\u00e7os. Existem sete tipos distintos de unidades(units) systemd:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Service (.service)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Representa um servi\u00e7o de sistema, como um daemon ou um script que deve ser executado. O tipo de unidade mais comum. Gerencia a ativa\u00e7\u00e3o, desativa\u00e7\u00e3o, e status de servi\u00e7os.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>nginx.service<\/code>, <code>sshd.service<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Socket (.socket)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Um <strong>socket<\/strong> \u00e9 como um ponto de comunica\u00e7\u00e3o que permite que dois programas ou processos diferentes &#8220;conversem&#8221; entre si, seja no mesmo computador ou atrav\u00e9s da rede. O socket do systemd gerencia sockets de rede ou IPC (Inter-Process Communication) que est\u00e3o associados a servi\u00e7os. O tipo de unidade socket pode ser um socket de sistema de arquivos ou um socket de rede. Pode ser usado para ativar um servi\u00e7o automaticamente quando h\u00e1 atividade em um socket. Escuta em sockets espec\u00edficos e ativa servi\u00e7os correspondentes quando necess\u00e1rio. Todas as unidades socket possuem uma unidade de servi\u00e7o correspondente, carregada quando o socket recebe uma solicita\u00e7\u00e3o.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>cups.socket<\/code>, <code>sshd.socket<\/code><\/li>\n\n\n\n<li><strong>Descri\u00e7\u00e3o 02:<\/strong> Imagine que o socket \u00e9 como uma linha telef\u00f4nica. Quando voc\u00ea quer falar com algu\u00e9m, voc\u00ea &#8220;liga&#8221; (abre um socket) e, se o outro lado atender (outro programa ou servi\u00e7o est\u00e1 escutando nesse socket), voc\u00eas come\u00e7am a trocar informa\u00e7\u00f5es (mensagens de rede, dados, etc.). No contexto do <strong>systemd<\/strong>, uma unidade de socket (<code>.socket<\/code>) faz o papel de &#8220;escutador&#8221;. Ela fica esperando por conex\u00f5es ou atividade em uma porta de rede espec\u00edfica ou em um canal de comunica\u00e7\u00e3o dentro do pr\u00f3prio computador.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Device (.device)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Representa um dispositivo de hardware detectado pelo sistema. Configura a\u00e7\u00f5es espec\u00edficas para quando um dispositivo \u00e9 detectado ou removido. Um dispositivo s\u00f3 ser\u00e1 considerado como uma unidade systemd se existir uma regra udev para isso. Uma unidade de dispositivo pode ser usada para resolver depend\u00eancias de configura\u00e7\u00e3o quando determinado hardware \u00e9 detectado, uma vez que as propriedades da regra udev podem ser usadas como par\u00e2metros para a unidade de dispositivo.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>dev-sda.device<\/code>, <code>dev-usb.device<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Mount (.mount)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Representa um ponto de montagem para sistemas de arquivos. Configura a montagem autom\u00e1tica de sistemas de arquivos. \u00c9 semelhante a uma entrada em \/etc\/fstab.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>home.mount<\/code>, <code>mnt-data.mount<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Automount (.automount)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Funciona em conjunto com as unidades de montagem (.mount) para montar sistemas de arquivos sob demanda. Configura a montagem autom\u00e1tica de sistemas de arquivos quando acessados.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>home.automount<\/code>, <code>mnt-data.automount<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Target (.target)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Agrupa outras unidades (como servi\u00e7os e sockets) para alcan\u00e7ar um estado espec\u00edfico do sistema, como inicializa\u00e7\u00e3o completa ou desligamento. Define estados ou n\u00edveis de execu\u00e7\u00e3o equivalentes aos runlevels no SysVinit.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>multi-user.target<\/code>, <code>graphical.target<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Snapshot (.snapshot)<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Descri\u00e7\u00e3o:<\/strong> Representa o estado atual do sistema que pode ser salvo e restaurado mais tarde. Permite capturar o estado atual das unidades do systemd para restaura\u00e7\u00e3o posterior. Esse unidade(unit) n\u00e3o est\u00e1 dispon\u00edvel em todas as distribui\u00e7\u00f5es Linux.<\/li>\n\n\n\n<li><strong>Exemplo:<\/strong> <code>mysnapshot.snapshot<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>O comando <strong>systemctl <\/strong>\u00e9 usado para gerenciar as unidades(units) do systemd. Podemos gerenciar com ativa\u00e7\u00e3o, desativa\u00e7\u00e3o, execu\u00e7\u00e3o, interrup\u00e7\u00e3o e monitoramento da unidade, entre outras.<\/p>\n\n\n\n<p>Como exemplo, irei usar o servi\u00e7o do apache no Debian que \u00e9 chamado de apache2.service<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>inicia o apache<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl start apache2.service<\/pre>\n\n\n\n<p>para o apache<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl stop apache2.service<\/pre>\n\n\n\n<p>reinicia o apache<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl restart apache2.service<\/pre>\n\n\n\n<p>verifica o status do apache<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl status apache2.service<\/pre>\n\n\n\n<p>verifica se o apache est\u00e1 ativo. Exibe active se unit estiver rodando, ou inactive se n\u00e3o estiver.<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl is-active apache2.service<\/pre>\n\n\n\n<p>Habilita unit, ou seja, unit ser\u00e1 carregado durante a inicializa\u00e7\u00e3o do sistema.<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl enable apache2.service<\/pre>\n\n\n\n<p>unit n\u00e3o ser\u00e1 iniciado com o sistema.<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl disable apache2.service<\/pre>\n\n\n\n<p>Verifica se unit \u00e9 iniciado com o sistema. A resposta \u00e9 armazenada na vari\u00e1vel $?. O valor 0<br>indica que unit inicia com o sistema e o valor 1 indica que n\u00e3o.<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ sudo systemctl is-enabled apache2.service<\/pre>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Se houver apenas a unidade com aquele nome, ent\u00e3o poderemos descartar o .service ou outro tipo. Exemplo: <kbd><em>systemctl start apache2<\/em><\/kbd><br>Ao inv\u00e9s de &#8230;apache2.service<\/p><\/blockquote><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Como alterar o target(destino ou alvo padr\u00e3o) no systemd?<\/h4>\n\n\n\n<p><strong>Target<\/strong> \u00e9 do uma palavra do ingl\u00eas que traduzida quer dizer <strong>alvo.<\/strong> o <strong>systemd<\/strong> chama um conjunto de servi\u00e7os que precisam ser iniciados para atingir um determinado estado do sistema de <strong>target<\/strong> porque ele representa um <strong>alvo<\/strong> a ser alcan\u00e7ado. \u00c9 como se fosse um destino final para a inicializa\u00e7\u00e3o do sistema.<\/p>\n\n\n\n<p>Sabemos que a unidade(unit) target \u00e9 similar ao runlevel(n\u00edvel de execu\u00e7\u00e3o) do SysVinit e, assim, podemos configurar o sistema para iniciar em diversos modos, como com interface gr\u00e1fica ou sem.<\/p>\n\n\n\n<p>PELOS PAR\u00c2METROS DO KERNEL<\/p>\n\n\n\n<p>podemos colocar <em><strong>systemd.unit=multi-user.target<\/strong><\/em> nos par\u00e2metros do kernel para que o sistema inicie sempre no modo similar ao runlevel 3 do SysVinit.<\/p>\n\n\n\n<p>Esse m\u00e9todo \u00e9 bem dif\u00edcil e mais complexo. <\/p>\n\n\n\n<p>SYSTEMCTL ISOLATE<\/p>\n\n\n\n<p>Podemos usar systemctl isolate nome_da_target para mudarmos de alvo. <strong>isolate<\/strong> Isola o sistema no target <code class=\"\">target<\/code> desejado, desativando todos os outros targets ativos no momento. \u00c9 como reiniciar o sistema para esse target espec\u00edfico.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># systemctl isolate multi-user.target<\/code><\/pre>\n\n\n\n<p>SYSTEMCTL SET-DEFAULT<\/p>\n\n\n\n<p>Outra maneira de alterar o destino padr\u00e3o \u00e9 modificar o link simb\u00f3lico \/etc\/systemd\/system\/default.target para que ele aponte para o destino desejado.<\/p>\n\n\n\n<p>Podemos fazer isso usando o pr\u00f3prio comando systemctl set-default. <strong>set-default<\/strong> define o target <code class=\"\">desejado<\/code> como o target padr\u00e3o para futuras inicializa\u00e7\u00f5es do sistema. Ou seja, sempre que o sistema for reiniciado, ele iniciar\u00e1 nesse target, a menos que seja alterado manualmente.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># systemctl set-default multi-user.target<\/code><\/pre>\n\n\n\n<p>Veja o resultado com o comando <strong>systemctl get-default<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ systemctl get-default\ngraphical.target<\/code><\/pre>\n\n\n\n<p>Logicamente, nunca aponte o o target para shutdown.target!<\/p>\n\n\n\n<p>CRIAR LINK SIMB\u00d3LICO PARA \/etc\/systemd\/system\/default.target <\/p>\n\n\n\n<p>Podemos criar um link simb\u00f3lico para \/etc\/systemd\/system\/default.target. <\/p>\n\n\n\n<p>Veja abaixo que, em meu caso, h\u00e1 apontamento para \/etc\/systemd\/system\/default.target<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ ls -l  \/etc\/systemd\/system\/default.target\nlrwxrwxrwx 1 root root 37 ago  1 10:28 <font color=\"#00CDCD\"><b>\/etc\/systemd\/system\/default.target<\/b><\/font> -&gt; \/lib\/systemd\/system\/multi-user.target\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Outros Comandos do systemd<\/h4>\n\n\n\n<p><strong>systemctl list-unit-files<\/strong><\/p>\n\n\n\n<p>Dentro do diret\u00f3rio \/lib\/systemd\/system\/ \u00e9 onde ficam os arquivos de configura\u00e7\u00e3o. Execute <strong>systemctl list-unit-files<\/strong> para listar os arquivos das unidades<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ systemctl list-unit-files \n<u style=\"text-decoration-style:single\">UNIT FILE                                                                 STATE           PRESET  <\/u>\n<u style=\"text-decoration-style:single\">proc-sys-fs-binfmt_misc.automount                                         static          -       <\/u>\n-.mount                                                                   generated       <font color=\"#8A8A8A\">-       <\/font>\ndev-hugepages.mount                                                       static          <font color=\"#8A8A8A\">-       <\/font>\ndev-mqueue.mount                                                          static          <font color=\"#8A8A8A\">-       <\/font>\nmedia-cdrom0.mount                                                        generated       <font color=\"#8A8A8A\">-       <\/font>\nproc-sys-fs-binfmt_misc.mount                                             <font color=\"#CD0000\"><b>disabled        disabled<\/b><\/font>\nsys-fs-fuse-connections.mount                                             static          <font color=\"#8A8A8A\">-       <\/font>\nsys-kernel-config.mount                                                   static          <font color=\"#8A8A8A\">-       <\/font>\nsys-kernel-debug.mount                                                    static          <font color=\"#8A8A8A\">-       <\/font>\n<u style=\"text-decoration-style:single\">sys-kernel-tracing.mount                                                  static          -       <\/u>\nsystemd-ask-password-console.path                                         static          <font color=\"#8A8A8A\">-       <\/font>\n<u style=\"text-decoration-style:single\">systemd-ask-password-wall.path                                            static          -       <\/u>\n<u style=\"text-decoration-style:single\">session-9.scope                                                           transient       -       <\/u>\napache-htcacheclean.service                                               <font color=\"#CD0000\"><b>disabled        <\/b><\/font><font color=\"#00CD00\"><b>enabled <\/b><\/font>\napache-htcacheclean@.service                                              <font color=\"#CD0000\"><b>disabled        <\/b><\/font><font color=\"#00CD00\"><b>enabled <\/b><\/font>\napache2.service                                                           <font color=\"#00CD00\"><b>enabled         enabled <\/b><\/font>\napache2@.service                                                          <font color=\"#CD0000\"><b>disabled        <\/b><\/font><font color=\"#00CD00\"><b>enabled <\/b><\/font>\napparmor.service                                                          <font color=\"#00CD00\"><b>enabled         enabled <\/b><\/font>\napt-daily-upgrade.service                                                 static          <font color=\"#8A8A8A\">-       <\/font>\n<\/pre>\n\n\n\n<p>Podemos usar &#8211;type para exibir somente o tipo especificado<\/p>\n\n\n\n<pre><font color=\"#00CD00\"><b>elder@debian12<\/b><\/font>:<font color=\"#0000EE\"><b>~<\/b><\/font>$ systemctl list-unit-files --type=target<\/pre>\n\n\n\n<p><strong>systemctl list-units<\/strong><\/p>\n\n\n\n<p>Use <strong>systemctl list-units<\/strong> para listar as unidades. Tamb\u00e9m podemos usar <strong>systemctl list-units &#8211;type=target<\/strong> para selecionar o tipo de unidade a ser exibido<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">systemd e consumo de energia<\/h4>\n\n\n\n<p>O systemd tamb\u00e9m \u00e9 respons\u00e1vel por acionar e responder a eventos relacionados ao consumo de energia.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>systemctl suspend<\/code><\/strong><br>Coloca o sistema em modo de suspens\u00e3o, onde o estado \u00e9 armazenado na RAM e o sistema entra em um modo de baixa energia.<\/li>\n\n\n\n<li><strong><code>systemctl hibernate<\/code><\/strong><br>Coloca o sistema em modo de hiberna\u00e7\u00e3o, onde o estado \u00e9 armazenado no disco, e o sistema \u00e9 desligado completamente.<\/li>\n\n\n\n<li><strong><code>systemctl hybrid-sleep<\/code><\/strong><br>Combina a suspens\u00e3o e a hiberna\u00e7\u00e3o. O estado \u00e9 salvo tanto na RAM quanto no disco. O sistema entra em suspens\u00e3o, mas hiberna se a energia for cortada.<\/li>\n\n\n\n<li><strong><code>systemctl poweroff<\/code><\/strong><br>Desliga o sistema completamente.<\/li>\n\n\n\n<li><strong><code>systemctl reboot<\/code><\/strong><br>Reinicia o sistema.<\/li>\n\n\n\n<li><strong><code>systemctl halt<\/code><\/strong><br>Para todas as opera\u00e7\u00f5es, mas n\u00e3o desliga a energia. \u00c9 uma forma de interromper o sistema sem deslig\u00e1-lo completamente.<\/li>\n\n\n\n<li><strong><code>systemctl suspend-then-hibernate<\/code><\/strong><br>Primeiro coloca o sistema em suspens\u00e3o, depois hiberna ap\u00f3s um per\u00edodo definido.<\/li>\n<\/ol>\n\n\n\n<p>Em \/etc\/systemd\/logind.conf \u00e9 onde ficam as a\u00e7\u00f5es associadas a esses eventos. Podemos alimentar esse arquivo ou criar outros terminado em .conf dentro de  \/etc\/systemd\/logind.conf.d\/<\/p>\n\n\n\n<p>Por\u00e9m, logind.conf n\u00e3o \u00e9 muito usado; em seu lugar, acpid \u00e9 o principal gerenciador de energia do Linux e permite ajustes mais refinados, como fechar a tampa do laptop, bateria fraca ou n\u00edveis de carga da bateria.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Upstart<\/h2>\n\n\n\n<p>Os scripts de inicializa\u00e7\u00e3o usados pelo Upstart est\u00e3o localizados no diret\u00f3rio \/etc\/init\/. Podemos usar initctl list para listar os servi\u00e7os.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># initctl list\navahi-cups-reload stop\/waiting\navahi-daemon start\/running, process 1123\nmountall-net stop\/waiting\nmountnfs-bootclean.sh start\/running\nnmbd start\/running, process 3085\npasswd stop\/waiting\nrc stop\/waiting\nrsyslog start\/running, process 1095<\/code><\/pre>\n\n\n\n<p>Podemos executar diversos comandos relacionados ao gerenciador de servi\u00e7os Upstart<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># start tty6<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># status tty6\ntty6 start\/running, process 3282<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># stop tty6<\/code><\/pre>\n\n\n\n<p>O Upstart n\u00e3o usa o arquivo \/etc\/inittab para definir os n\u00edveis de execu\u00e7\u00e3o. <\/p>\n\n\n\n<p>O Ubuntu parou de usar o Upstart em 2015, quando migrou do Upstart para o systemd.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Afinal, como desligar e reiniciar o sistema Linux?<\/h2>\n\n\n\n<p>O comando <code>shutdown<\/code> no Linux \u00e9 utilizado para desligar, reiniciar ou parar o sistema de forma segura. O comando shutdown atua como intermedi\u00e1rio nos procedimentos do SysV ou do systemd, ou seja, executa a a\u00e7\u00e3o solicitada chamando a a\u00e7\u00e3o correspondente no gerenciador de servi\u00e7os adotado pelo sistema.<\/p>\n\n\n\n<p>Ap\u00f3s o shutdown ser executado, todos os processos recebem o sinal SIGTERM, seguido pelo sinal SIGKILL, e o sistema \u00e9 encerrado ou muda seu n\u00edvel de execu\u00e7\u00e3o. <\/p>\n\n\n\n<p>-h ou -r n\u00e3o s\u00e3o usadas, o sistema alterna para o n\u00edvel de execu\u00e7\u00e3o 1 ou o modo de usu\u00e1rio \u00fanico<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Comando<\/th><th>Descri\u00e7\u00e3o<\/th><\/tr><\/thead><tbody><tr><td><code>shutdown now<\/code><\/td><td>Desliga o sistema imediatamente.<\/td><\/tr><tr><td><code>shutdown -h now<\/code><\/td><td>Desliga o sistema imediatamente (<code>-h<\/code> significa &#8220;halt&#8221;).<\/td><\/tr><tr><td><code>shutdown -r now<\/code><\/td><td>Reinicia o sistema imediatamente (<code>-r<\/code> significa &#8220;reboot&#8221;).<\/td><\/tr><tr><td><code>shutdown +10<\/code><\/td><td>Desliga o sistema ap\u00f3s 10 minutos.<\/td><\/tr><tr><td><code>shutdown -r +5<\/code><\/td><td>Reinicia o sistema ap\u00f3s 5 minutos.<\/td><\/tr><tr><td><code>shutdown -h 22:00<\/code><\/td><td>Desliga o sistema \u00e0s 22:00 horas.<\/td><\/tr><tr><td><code>shutdown -c<\/code><\/td><td>Cancela um desligamento agendado.<\/td><\/tr><tr><td><code>shutdown -h now \"Message\"<\/code><\/td><td>Desliga o sistema imediatamente e envia a mensagem &#8220;Message&#8221; aos usu\u00e1rios.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Substitua <strong>message<\/strong> por um aviso a ser enviado a todas as sess\u00f5es de terminal dos usu\u00e1rios logados.<\/p>\n\n\n\n<p>Podemos usar a sintaxe abaixo para alterarmos o comportamento padr\u00e3o do comando shutdown:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ shutdown &#91;option] time &#91;message]<\/code><\/pre>\n\n\n\n<p>Apenas <strong>time <\/strong>\u00e9 obrigat\u00f3rio. Veja outros exemplos:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Comando<\/th><th>Formato de Tempo<\/th><th>Descri\u00e7\u00e3o<\/th><\/tr><\/thead><tbody><tr><td><code>shutdown -h 23:30<\/code><\/td><td><code>hh:mm<\/code><\/td><td>Desliga o sistema \u00e0s 23:30 horas.<\/td><\/tr><tr><td><code>shutdown -r +15<\/code><\/td><td><code>+m<\/code><\/td><td>Reinicia o sistema ap\u00f3s 15 minutos.<\/td><\/tr><tr><td><code>shutdown -h +30 \"Aviso\"<\/code><\/td><td><code>+m<\/code><\/td><td>Desliga o sistema ap\u00f3s 30 minutos e envia a mensagem &#8220;Aviso&#8221; aos usu\u00e1rios.<\/td><\/tr><tr><td><code>shutdown now<\/code><\/td><td><code>now<\/code><\/td><td>Desliga o sistema imediatamente.<\/td><\/tr><tr><td><code>shutdown -r now<\/code><\/td><td><code>now<\/code><\/td><td>Reinicia o sistema imediatamente.<\/td><\/tr><tr><td><code>shutdown +0<\/code><\/td><td><code>+0<\/code><\/td><td>Desliga o sistema imediatamente (equivalente a <code>now<\/code>).<\/td><\/tr><tr><td><code>shutdown -h 01:00 \"Manuten\u00e7\u00e3o\"<\/code><\/td><td><code>hh:mm<\/code><\/td><td>Desliga o sistema \u00e0 01:00 da manh\u00e3 e envia a mensagem &#8220;Manuten\u00e7\u00e3o&#8221; aos usu\u00e1rios.<\/td><\/tr><tr><td><code>shutdown -c<\/code><\/td><td>N\/A<\/td><td>Cancela um desligamento ou rein\u00edcio agendado anteriormente.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Ctrl + Alt + Del<\/strong> serve para reiniciar o sistema. Podemos limitar os usu\u00e1rios que podem reiniciar no SysV e no systemd. No SysV, altere o arquivo \/etc\/inittab<\/p>\n\n\n\n<p>Com o comando abaixo, somente nomes de usu\u00e1rio que constem no arquivo \/etc\/shutdown.allow poder\u00e3o reiniciar o sistema usando Ctrl Alt Del.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ca::ctrlaltdel:\/sbin\/shutdown -t1 -a -r now<\/code><\/pre>\n\n\n\n<p>No systemctl a configura\u00e7\u00e3o pode ser feita no arquivo <code>\/etc\/systemd\/system\/ctrl-alt-del.target<\/code> ou <code><strong>\/etc\/systemd\/logind.conf<\/strong><\/code>. <\/p>\n\n\n\n<p>Para gerenciar energia com o systemd, execute: <strong><code>systemctl poweroff<\/code><\/strong>,  <strong><code>systemctl reboot<\/code><\/strong>&#8230;<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoje iremos falar sobre processos que servem para controlar certas fun\u00e7\u00f5es do sistema. Esses processos s\u00e3o chamados de daemons ou de servi\u00e7os. Muitas vezes precisaremos interromper, iniciar(start) ou reiniciar(restart) alguns servi\u00e7os; poderemos tamb\u00e9m fazer servi\u00e7os iniciarem automaticamente ap\u00f3s o start do sistema operacional. Para isso, podemos usar scripts ou programas espec\u00edficos. Dentre esses programas para&#8230;<\/p>\n<p class=\"more-link-wrap\"><a href=\"https:\/\/categoriaoutros.com.br\/?p=16017\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &ldquo;Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema&rdquo;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,2918],"tags":[4835],"class_list":["post-16017","post","type-post","status-publish","format-standard","hentry","category-informatica-dicas","category-linux","tag-lpi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/categoriaoutros.com.br\/?p=16017\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros\" \/>\n<meta property=\"og:description\" content=\"Hoje iremos falar sobre processos que servem para controlar certas fun\u00e7\u00f5es do sistema. Esses processos s\u00e3o chamados de daemons ou de servi\u00e7os. Muitas vezes precisaremos interromper, iniciar(start) ou reiniciar(restart) alguns servi\u00e7os; poderemos tamb\u00e9m fazer servi\u00e7os iniciarem automaticamente ap\u00f3s o start do sistema operacional. Para isso, podemos usar scripts ou programas espec\u00edficos. Dentre esses programas para...Read More &ldquo;Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema&rdquo; &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/categoriaoutros.com.br\/?p=16017\" \/>\n<meta property=\"og:site_name\" content=\"Categoria Outros\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/categoriaoutros\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-01T17:19:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-01T17:19:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/pinguim-paginas-padrao.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1022\" \/>\n\t<meta property=\"og:image:height\" content=\"722\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Categoria: Outros\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CategoriaOutros\" \/>\n<meta name=\"twitter:site\" content=\"@CategoriaOutros\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Categoria: Outros\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017#article\",\"isPartOf\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017\"},\"author\":{\"name\":\"Categoria: Outros\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40\"},\"headline\":\"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema\",\"datePublished\":\"2024-08-01T17:19:08+00:00\",\"dateModified\":\"2024-08-01T17:19:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017\"},\"wordCount\":3005,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\"},\"keywords\":[\"LPI\"],\"articleSection\":[\"Inform\u00e1tica\",\"Linux\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/categoriaoutros.com.br\/?p=16017#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017\",\"url\":\"https:\/\/categoriaoutros.com.br\/?p=16017\",\"name\":\"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros\",\"isPartOf\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#website\"},\"datePublished\":\"2024-08-01T17:19:08+00:00\",\"dateModified\":\"2024-08-01T17:19:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/categoriaoutros.com.br\/?p=16017\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/categoriaoutros.com.br\/?p=16017#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/categoriaoutros.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#website\",\"url\":\"https:\/\/categoriaoutros.com.br\/\",\"name\":\"Categoria Outros\",\"description\":\"Assuntos Diversos\",\"publisher\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/categoriaoutros.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#organization\",\"name\":\"Categoria Outros\",\"alternateName\":\"Categoria Outros\",\"url\":\"https:\/\/categoriaoutros.com.br\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg\",\"contentUrl\":\"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg\",\"width\":400,\"height\":400,\"caption\":\"Categoria Outros\"},\"image\":{\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/categoriaoutros\",\"https:\/\/twitter.com\/CategoriaOutros\",\"https:\/\/br.pinterest.com\/CategoriaOutros\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40\",\"name\":\"Categoria: Outros\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g\",\"caption\":\"Categoria: Outros\"},\"sameAs\":[\"http:\/\/categoriaoutros.com.br\"],\"url\":\"https:\/\/categoriaoutros.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/categoriaoutros.com.br\/?p=16017","og_locale":"pt_BR","og_type":"article","og_title":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros","og_description":"Hoje iremos falar sobre processos que servem para controlar certas fun\u00e7\u00f5es do sistema. Esses processos s\u00e3o chamados de daemons ou de servi\u00e7os. Muitas vezes precisaremos interromper, iniciar(start) ou reiniciar(restart) alguns servi\u00e7os; poderemos tamb\u00e9m fazer servi\u00e7os iniciarem automaticamente ap\u00f3s o start do sistema operacional. Para isso, podemos usar scripts ou programas espec\u00edficos. Dentre esses programas para...Read More &ldquo;Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema&rdquo; &raquo;","og_url":"https:\/\/categoriaoutros.com.br\/?p=16017","og_site_name":"Categoria Outros","article_publisher":"https:\/\/www.facebook.com\/categoriaoutros","article_published_time":"2024-08-01T17:19:08+00:00","article_modified_time":"2024-08-01T17:19:12+00:00","og_image":[{"width":1022,"height":722,"url":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/pinguim-paginas-padrao.webp","type":"image\/webp"}],"author":"Categoria: Outros","twitter_card":"summary_large_image","twitter_creator":"@CategoriaOutros","twitter_site":"@CategoriaOutros","twitter_misc":{"Escrito por":"Categoria: Outros","Est. tempo de leitura":"15 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/categoriaoutros.com.br\/?p=16017#article","isPartOf":{"@id":"https:\/\/categoriaoutros.com.br\/?p=16017"},"author":{"name":"Categoria: Outros","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40"},"headline":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema","datePublished":"2024-08-01T17:19:08+00:00","dateModified":"2024-08-01T17:19:12+00:00","mainEntityOfPage":{"@id":"https:\/\/categoriaoutros.com.br\/?p=16017"},"wordCount":3005,"commentCount":0,"publisher":{"@id":"https:\/\/categoriaoutros.com.br\/#organization"},"keywords":["LPI"],"articleSection":["Inform\u00e1tica","Linux"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/categoriaoutros.com.br\/?p=16017#respond"]}]},{"@type":"WebPage","@id":"https:\/\/categoriaoutros.com.br\/?p=16017","url":"https:\/\/categoriaoutros.com.br\/?p=16017","name":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema - Categoria Outros","isPartOf":{"@id":"https:\/\/categoriaoutros.com.br\/#website"},"datePublished":"2024-08-01T17:19:08+00:00","dateModified":"2024-08-01T17:19:12+00:00","breadcrumb":{"@id":"https:\/\/categoriaoutros.com.br\/?p=16017#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/categoriaoutros.com.br\/?p=16017"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/categoriaoutros.com.br\/?p=16017#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/categoriaoutros.com.br\/"},{"@type":"ListItem","position":2,"name":"Linux LPI 101.3: Alternar runlevels\/boot targets, desligar e reiniciar o sistema"}]},{"@type":"WebSite","@id":"https:\/\/categoriaoutros.com.br\/#website","url":"https:\/\/categoriaoutros.com.br\/","name":"Categoria Outros","description":"Assuntos Diversos","publisher":{"@id":"https:\/\/categoriaoutros.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/categoriaoutros.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/categoriaoutros.com.br\/#organization","name":"Categoria Outros","alternateName":"Categoria Outros","url":"https:\/\/categoriaoutros.com.br\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg","contentUrl":"https:\/\/categoriaoutros.com.br\/wp-content\/uploads\/2023\/08\/categoriaoutros-logo.jpg","width":400,"height":400,"caption":"Categoria Outros"},"image":{"@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/categoriaoutros","https:\/\/twitter.com\/CategoriaOutros","https:\/\/br.pinterest.com\/CategoriaOutros\/"]},{"@type":"Person","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/ba0f432708449436912bd6736864bb40","name":"Categoria: Outros","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/categoriaoutros.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ed97775f0ab50750ed638ed3417ea85e19ced2c648da167a108e393ae5fd9e33?s=96&d=mm&r=g","caption":"Categoria: Outros"},"sameAs":["http:\/\/categoriaoutros.com.br"],"url":"https:\/\/categoriaoutros.com.br\/?author=1"}]}},"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/16017","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16017"}],"version-history":[{"count":40,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/16017\/revisions"}],"predecessor-version":[{"id":16063,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=\/wp\/v2\/posts\/16017\/revisions\/16063"}],"wp:attachment":[{"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16017"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=16017"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/categoriaoutros.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=16017"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}