Um programa é uma coleção estática de código de máquina executável e dados (código armazenado estaticamente em um arquivo) armazenados em um meio de armazenamento externo (como disco rígido, CD)
Um processo é um programa de computador executado dinamicamente na CPU e na memória
No sistema Linux, um ou mais processos podem ser criados após cada programa ser iniciado
1. Ver informações do processo-ps
O comando ps é a ferramenta de visualização de processo mais comum em sistemas Linux. Ele é usado principalmente para exibir instantâneos estáticos contendo informações completas sobre cada processo em execução.
Por meio de diferentes opções de comando, você pode visualizar seletivamente as informações do processo
1.1 Método 1: ps -aux
a: Exibir todas as informações de processo no terminal atual, incluindo processos de outros usuários. Quando combinado com a opção "x", todas as informações de processo no sistema serão exibidas
u: informações do processo de saída em um formato orientado ao usuário
x: Exibe as informações do processo do usuário atual em todos os terminais
As informações do processo serão exibidas na forma de uma lista simples
A quantidade de memória virtual usada pelo processo (KB)
RSS
A quantidade de memória física usada pelo processo (KB)
TYY
O nome do terminal que iniciou o processo; se o processo não for iniciado a partir do terminal, será exibido como "?"
ESTADO
O estado do processo (D: estado dormente não interrompível; R: estado de execução; S: estado dormente e pode ser despertado; s, processo pai; T: estado parado, que pode ser suspenso em segundo plano ou o processo está em um estado de depuração de rastreamento ; Z: processo zumbi, o processo foi encerrado, mas a maioria dos programas ainda está na memória; <: estado de alta prioridade; +: processo em primeiro plano) 7
COMEÇAR
A hora em que o processo foi acionado
TEMPO
O tempo que o processo realmente usa a CPU para executar
COMANDO
Comando de início de processo
Explicação do termo (processo zumbi): um processo terminou, mas ainda ocupa memória, também chamado de zumbi
1.2 Método 2: ps -elf
e: Exibir todas as informações do processo no sistema
l: Exibir informações do processo em formato longo
f: Use o formato completo para exibir as informações do processo
Irá exibir as informações do processo no sistema em um formato longo e conter um conteúdo mais rico
##例:
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 32068 ep_pol 16:47 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
1 S root 2 0 0 80 0 - 0 kthrea 16:47 ? 00:00:00 [kthreadd]
1 S root 4 2 0 60 -20 - 0 worker 16:47 ? 00:00:00 [kworker/0:0H]
1 S root 5 2 0 80 0 - 0 worker 16:47 ? 00:00:00 [kworker/u256:0]
##省略...
substantivo
Explicação
F
Etiqueta do sistema atribuída pelo kernel ao processo
S
Status do processo
UID
O usuário que iniciou esses processos
PID
ID de processo do processo
PPID
O número do processo pai (se o processo foi iniciado por outro processo)
C
Utilização da CPU no ciclo de vida de um processo
PRI
A prioridade do processo (quanto maior o número, menor a prioridade)
NI
O valor de modéstia é usado para participar na determinação da prioridade
ADDR
Endereço de memória do processo
SZ
Se o processo for trocado, o tamanho aproximado do espaço de troca necessário
WCHAN
Se o processo está em hibernação, exibe o nome da função do sistema em hibernação
ESTIMATIVAS
Hora do sistema quando o processo começou
TTY
Dispositivo terminal quando o processo começa
TEMPO
Tempo cumulativo de CPU necessário para executar o processo
CMD
Comando de início de processo
No sistema CentOs7, tty1 representa a interface gráfica, tty2-tty6 representa a interface de texto, você pode usar Ctrl + Alt + (F1-F6) para alternar
1.3 Outros exemplos
Ao executar diretamente o comando ps sem nenhuma opção, apenas os processos abertos na sessão de usuário atual serão exibidos
Devido ao grande número de processos em execução no sistema, quando você precisa consultar as informações de um determinado processo, você pode combinar o símbolo do pipe e o comando grep para filtrar
Use o comando ps para ver as informações estáticas do processo e não pode fornecer feedback continuamente sobre o status de execução do processo atual
Se você deseja exibir as informações de status de cada processo em um modo de atualização dinâmica, você pode usar este comando
Atualizar a cada três segundos por padrão
2.1 Diagrama de exemplo
[root@localhost ~]# top
2.2 Tarefa do sistema (primeira linha) e informações do processo (segunda linha)
Informação relacionada
significado
/
/
18:55:08
hora do sistema
Tarefas
Número total de processos
até 2:07
Tempo de funcionamento do sistema
corrida
Número de processos em execução
1 usuário
Número de usuários conectados no momento
dormindo
Número de processos de sono
carga média: 0,00,0,01,0,05
Carga do sistema, ou seja, o número de tarefas processadas pelo sistema em uma unidade de tempo, os três valores a seguir são o valor médio de 1 minuto, 5 minutos e 15 minutos até o presente
parado
Número de processos abortados
/
/
zumbi
Número de processos zumbis
2.3 CPU (terceira linha), informações de memória (quarta linha) e informações de espaço de troca (quinta linha)
Informação relacionada
significado
/
/
/
/
nos
Ocupação do usuário
total
Espaço total de memória
total
Espaço de troca total
dele
Ocupação do kernel
livre
Memoria livre
livre
Espaço de troca grátis
ni
Ocupação de agendamento prioritário
usava
Memoria usada
usava
Trocar espaço usado
Eu iria
CPU ociosa, para entender a porcentagem de CPU ociosa, olhe principalmente para a parte% id
buff / cahe
A soma dos buffers de memória física e memória swap
disponibilidade Mem
Espaço físico disponível
wa
I / O esperando para ser ocupado
/
/
/
/
Oi
Ocupação de interrupção de hardware
/
/
/
/
e
Ocupação de interrupção de software
/
/
/
/
st
Ocupação de virtualização
/
/
/
/
2.4 Explicação detalhada de cada coluna na área de informações do processo
em formação
Explicação
PID
Id de processo
DO UTILIZADOR
Nome de usuário do proprietário do processo
PR
prioridade
NI
Valor de modéstia, valor negativo indica alta prioridade, valor positivo indica baixa prioridade
VIRT
A quantidade total de memória virtual usada pelo processo, em kb
RES
O tamanho da memória física usada pelo processo, em kb
SHR
Tamanho da memória compartilhada, unidade kb
S
Status do processo
%CPU
Porcentagem de tempo de CPU desde a última atualização até o presente
% MEM
A porcentagem de memória física usada pelo processo
TIME +
O tempo total de CPU usado pelo processo, em unidades de 1/100 de segundo
COMANDO
Nome do comando / linha de comando
2.5 PRINCIPAIS comandos comumente usados
comando
Explicação
P
Classificar por porcentagem de uso da CPU
M
Classificar por tamanho da memória residente
N
Classificar por hora de início
c
Alterna a exibição do nome do comando e linha de comando completa
h
Obtenha informações de ajuda online para o melhor programa
k
Insira o número PID do processo especificado conforme solicitado e pressione Enter para encerrar o processo correspondente
q
Sair do programa principal
(Número 1
Exibir o número e status da CPU
3. Ver informações do processo-pgrep
Ao usar o comando ps para consultar um determinado processo, muitas vezes é necessário combinar o comando grep para filtrar os resultados de saída, mas isso é muito inconveniente de usar, e o comando "pgrep" é uma ferramenta especial usada para consultar informações específicas do processo
[root@localhost ~]# vim tmpfile ##打开vim并挂起以作测试
[1]+ 已停止 vim tmpfile
[root@localhost ~]# jobs -l ##查询目标进程PID号
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill 2028 ##尝试直接终止进程
[root@localhost ~]# jobs -l ##查询后发现并未退出
[1]+ 2028 停止 vim tmpfile
[root@localhost ~]# kill -9 2028 ##结合“-9”选项试试,强制终止目标进程
[root@localhost ~]# jobs -l ##没了,成功
[1]+ 2028 已杀死 vim tmpfile
3.2 killall
用于结束系统中多个相关名称的进程
也可以结合“-9”选项
例:执行“killall -9 vim”命令可将所有名为vim的进程全部强行终止
[root@localhost ~]# vim testfile1
[1]+ 已停止 vim testfile1
[root@localhost ~]# vim testfile2
[2]+ 已停止 vim testfile2
[root@localhost ~]# vim testfile3
[3]+ 已停止 vim testfile3
[root@localhost ~]# jobs -l
[1] 2130 停止 vim testfile1
[2]- 2131 停止 vim testfile2
[3]+ 2132 停止 vim testfile3
[root@localhost ~]# killall -9 vim
[1] 已杀死 vim testfile1
[2]- 已杀死 vim testfile2
[3]+ 已杀死 vim testfile3
1.2 As configurações padrão do sistema, localizadas no diretório: /etc/cron.*/
Depois que o pacote crontabs for instalado, alguns diretórios de tarefas agendadas definidos pelo padrão do sistema serão promovidos neste diretório, e o trabalho que o sistema faz a cada hora e todos os dias é definido.
1.3 Configurações definidas pelo usuário, localizadas no arquivo: / var / spool / cron /
O plano cron definido pelo usuário usando o comando crontab será salvo neste diretório (um arquivo com o mesmo nome de usuário será gerado neste diretório)
2. Gerenciar tarefas agendadas do crontab
-u: especifica a qual usuário a tarefa agendada pertence. Por padrão, é para o usuário atual (próprio); geralmente, apenas o usuário raiz tem permissão para usar esta opção
Edite a tarefa agendada crontab -e [-u nome de usuário] (quando não há -u, o objeto padrão é o usuário atual)
Visualize a tarefa agendada crontab -l [-u nome de usuário]
Exclua a tarefa agendada crontab -r [-u nome de usuário]
3. O formato da configuração da tarefa crontab
Campo
Descrição
minuto
O valor é qualquer número inteiro de 0 a 59
hora
O valor é qualquer número inteiro de 0 a 23
encontro
O valor é qualquer número inteiro de 1 a 31
mês
O valor é qualquer número inteiro de 1 a 12
semana
O valor é qualquer número inteiro de 0 a 7, 0 ou 7 representa domingo
comando
Comando ou script de programa para executar
Lembre-se da fórmula (tenha em mente): dia, mês e semana de tempo compartilhado
4. Método especial de representação do valor do tempo
"*" significa qualquer momento dentro do intervalo
"," significa vários pontos de tempo discretos em um intervalo
Como nenhum login de usuário é necessário para executar tarefas, é recomendado usar caminhos absolutos para evitar a situação em que os comandos não podem ser executados devido à falta de caminhos de execução
Ao definir a tarefa para ser executada a cada minuto, o campo "minuto" também deve ser preenchido com um valor de tempo específico em vez do padrão "*", caso contrário a tarefa será executada a cada minuto
5. Outro
A opção crontab command set "-l" pode ver a lista de tarefas agendadas do usuário atual. Para usuários root, você também pode combinar a opção "-u" para ver as tarefas agendadas de outros usuários
Quando precisar excluir uma tarefa agendada, você pode editá-la com a opção "-e"
Outros exemplos:
5 * * * * ls ##每个小时的第5分钟执行一次ls命令
30 5 * * * ls ##每天的5:30执行ls命令
30 7 8 * * ls ##每个月8号的7:30执行ls命令
30 5 8 6 * ls ##每个6月8号的5:30执行ls命令
30 6 * * 0 ls ##每个周日的6:30执行ls命令
30 3 10,20 * * ls ##每个月10号和20号的3:30执行ls命令
25 8-11 * * * ls ##每天8点到11点的第25分时执行ls命令
*/15 * * * * ls ##每隔15分钟执行一次ls命令
30 6 */10 * * ls ##月中的每隔10天的6:30时执行一次ls命令