CentOS 7.1 - Revertendo para funcionalidade antiga de topo e serviço

3

Eu instalei recentemente um novo servidor CentOS 7.1. Estou percebendo algumas diferenças do CentOS 6.7, e espero que haja uma maneira de reverter para uma visão antiga de certas coisas.

Por exemplo:

Pergunta 1: top

O comando Top exibe dados de maneira diferente. Por exemplo:

Nova visualização superior:

top - 00:27:45 up  4:58,  1 user,  load average: 0.08, 0.50, 0.89
Tasks: 155 total,   2 running, 153 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  1.1 sy,  0.0 ni, 98.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  4047624 total,  1938600 free,   853888 used,  1255136 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used.  2860704 avail Mem

Vista superior antiga:

top - 00:28:59 up 22:49,  1 user,  load average: 0.19, 0.21, 0.24
Tasks: 157 total,   1 running, 156 sleeping,   0 stopped,   0 zombie
Cpu(s): 17.9%us,  1.0%sy,  0.0%ni, 80.9%id,  0.2%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4055052k total,  3456240k used,   598812k free,   584160k buffers
Swap:  4194296k total,   191184k used,  4003112k free,  1076124k cached

Existe alguma maneira de exibir a memória e estatísticas usando o formato antigo?

Pergunta 2: service Command

Com o Centos 6.7, se eu fizesse algo como service httpd restart , ele me daria uma mensagem OK ou Failure . O CentOS 7.1 não parece fazer isso.

Visão antiga:

# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

Nova visualização:

# service httpd restart
Redirecting to /bin/systemctl restart  httpd.service

Existe alguma maneira de voltar para a visão antiga? Eu percebo que isso é um pouco trivial, mas tem havido muitas vezes em que um serviço não foi iniciado, ou não iria parar por algum motivo. O status da mensagem é uma boa maneira de ver isso.

    
por Vinny Troia 02.01.2016 / 07:30

3 respostas

6

Pergunta 1

Tente usar top -M .

-M : Detect memory units
        Show memory units (k/M/G) and display floating point values in the
        memory summary.

KiB é uma unidade do SI que representa 1000 bytes, em que KB representa 1024 bytes.

Pessoalmente, eu sempre instale htop e uso isso, pois acho muito mais legível, muito mais informativo, e muito mais poderoso.

Além disso, free -k (kilobytes), free -m (megabytes) ou free -g (gigabytes) também fornecerão as informações de uso de memória que você está procurando.

Editar: Em uma investigação mais aprofundada, top -M pode não funcionar no CentOS 7. Aqui está uma ótima resposta com algumas abordagens alternativas e alternativas para top e htop .

Questão 2

CentOS 7 substituindo o legado sysvinit com systemd . Essa é uma mudança significativa, mas necessária, pois sysvinit está bastante desatualizado e trabalhar com as deficiências pode ser uma dificuldade para desenvolvedores e administradores. Ubuntu, Debian, RHEL, SUSE e quase todas as outras grandes distribuições Linux também mudaram para systemd .

A maneira correta de interagir com um serviço systemd nessas distribuições é usar o systemctl comando:

restart NAME...
   Restart one or more units specified on the command line. If the units are not running
   yet, they will be started.

Então, no seu caso:

systemctl restart httpd

Usar systemctl mostrará a indicação de sucesso ou falha que você está procurando (e retorna um código de saída apropriado).

Como o @Iian disse, aceite essas mudanças, já que essa mesma mudança já ocorreu em todas as principais distribuições Linux.

    
por 02.01.2016 / 09:47
6

O CentOS 7 é um sistema operacional significativamente diferente do CentOS 6. Em vez de querer retroceder, você deve adotar a mudança e seguir em frente. Você não pode voltar atrás com esses comandos (ou quaisquer outros realmente) sem voltar ao C6.

Aprenda a usar systemctl em vez de service ; É tão fácil assim que a memória muscular é reaprendida. Espere até que você tenha que trabalhar com firewalld , isso é 'divertido'.

Outras coisas que você encontrará diferentes.

O pacote net-tools que fornece netstat , ifconfig etc não é instalado por padrão, foi substituído pelas ferramentas em iproute ss , ip etc.

Muitos dos logs que você está acostumado a examinar não estão em / var / log e você precisa ativar o rsyslog para ter acesso a eles ou usar o journalctl.

Ohh e há hostnamectl e ... e ...

    
por 02.01.2016 / 07:36
4

Sua segunda pergunta sobre a falta de status ao reiniciar o serviço httpd é perfeitamente razoável.
O comando service sendo reprovado você precisará se acostumar com o comando systemctl .
Mas você também precisará se acostumar com o comando systemctl status .
em vez de

# service httpd restart

Você terá que digitar

# systemctl restart httpd
# systemctl status httpd
# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2016-01-02 11:45:01 CET; 8s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 29795 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           ├─29795 /usr/sbin/httpd -DFOREGROUND
           ├─29796 /usr/sbin/httpd -DFOREGROUND
           ├─29797 /usr/sbin/httpd -DFOREGROUND
           ├─29798 /usr/sbin/httpd -DFOREGROUND
           ├─29799 /usr/sbin/httpd -DFOREGROUND
           └─29800 /usr/sbin/httpd -DFOREGROUND

Jan 02 11:45:01 vm.certdepot.net systemd[1]: Starting The Apache HTTP Ser....
Jan 02 11:45:01 vm.certdepot.net systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

É claro que você precisará digitar dois comandos em vez de um, o que não é um progresso claro. No entanto, você terá uma ideia muito melhor da configuração atual:

  • o serviço está sendo executado?
  • que mensagens ele escreveu na inicialização das mensagens de log?
  • o serviço é ativado na inicialização?
  • qual arquivo da unidade de configuração foi usado?
  • qual CGroup este serviço pertence?
por 02.01.2016 / 12:03