Há duas categorias de ações em valores de controle de recursos: global e local.
Ações globais aplicam valores de controle de recursos para cada controle de recurso no sistema. Você pode usar o comando rctladm descrito na página do manual rctladm(1M) para executar as seguintes ações:
Exibir o estado global dos controles de recursos de sistema ativo
Definir ações de registro global
Você pode desativar ou ativar a ação de registro global nos controles de recursos. Você pode definir a ação syslog para um grau específico atribuindo um nível de severidade, syslog=level. As configurações possíveis para level são as seguintes:
depuração
info
notice
warning
err
crit
alert
emerg
Por padrão, não há registro global das violações do controle de registro. No Solaris 10 versão 5/08, o nível n/a foi adicionado para controles de recurso em que nenhuma ação global pode ser configurada.
Ações locais são tomadas em um processo que tenta exceder o valor de controle. Para cada valor de limiar colocado em um controle de recursos, você pode associar uma ou mais ações. Há três tipos de ações locais: none, deny e signal=. Estas três ações são usadas como a seguir:
Nenhuma ação é tomada sobre solicitações de recurso para uma quantidade que seja maior do que o limiar. Esta ação é útil para monitorar o uso de recursos sem afetar o progresso dos aplicativos. Você também pode ativar uma mensagem global que é exibida quando o controle de recursos é excedido, embora o processo que exceda o limiar não é afetado.
Você pode negar solicitações de recursos para uma quantidade que seja maior do que o limiar. Por exemplo, um controle de recursos task.max-lwps com ação deny faz com que uma chamada de sistema fork falhe, se o novo processo exceder o valor de controle. Consulte a página do manual fork(2).
Você pode ativar uma ação de mensagem de sinal global quando o controle de recursos é excedido. Um sinal é enviado para o processo quando o valor do limiar é excedido. Sinais adicionais não são enviados se o processo consumir recursos adicionais. Os sinais disponíveis estão listados na Tabela 6–3.
Nem todas as ações podem ser aplicadas a cada controle de recursos. Por exemplo, um processo não pode exceder o número de compartilhamentos de CPU atribuídas ao projeto do qual é membro. Assim, uma ação de negação não é permitida no controle de recursos project.cpu-shares.
Devido à implementação de restrições, as propriedades globais de cada controle podem restringir o intervalo de ações disponíveis que podem ser definidas no valor de limiar. (Consulte a página do manual rctladm(1M) Uma lista de ações de sinal disponíveis é apresentada na tabela abaixo. Para obter informações adicionais sobre sinais, consulte a página do manual signal(3HEAD).
Tabela 6–3 Sinais disponíveis para valores de controle de recursos
Sinal |
Descrição |
Notas |
---|---|---|
SIGABRT |
Terminar o processo. |
|
SIGHUP |
Enviar um sinal de desligar. Ocorre quando o transportador incide sobre uma linha aberta. Sinal enviado para o grupo de processos que controlam o terminal. |
|
SIGTERM |
Terminar o processo. Sinal de término enviado pelo software. |
|
SIGKILL |
Terminar o processo e eliminar o programa. |
|
SIGSTOP |
Parar o processo. Sinal de controle de trabalho. |
|
SIGXRES |
Limite de controle de recursos excedido. Gerado pela facilidade de controle de recursos. |
|
SIGXFSZ |
Terminar o processo. Limite de tamanho de arquivo excedido. |
Disponível somente para controles de recursos com a propriedade RCTL_GLOBAL_FILE_SIZE (process.max-file-size). Para obter mais informações, consulte rctlblk_set_value(3C). |
SIGXCPU |
Terminar o processo. Limite de tempo de CPU excedido. |
Disponível somente para controles de recursos com a propriedade RCTL_GLOBAL_CPUTIME (process.max-cpu-time). Para obter mais informações, consulte rctlblk_set_value(3C). |