Tenho o CRON rodando a cada 30 segundos, mas isso se enquadraria no crond
processo, correto? Por que o comando está sh
consumindo 50% da minha CPU quando ninguém está executando um Shell Script?
Responder1
Cron executará o comando especificado no campo de comando usando sh -c
. Você pode especificar outro shell definindo SHELL no arquivo crontab.
EDITAR:
Só para esclarecer, o sh -c
comando será executado como um subprocesso do cron, podendo gerar outros subprocessos dependendo do comando dado.
Responder2
crond
é executado como root em todos os sistemas com os quais estou familiarizado:
1016 % ps -ef | grep crond
root 342 1 0 12:37 ? 00:00:00 /usr/sbin/crond
Isso está em uma instalação bastante atual do Arch, mas um Slackware antigo diz a mesma coisa. Se você, como algum usuário não root, reunir um arquivo crontab, crond
executará os comandos como seu ID de usuário não root. A propriedade root tem sido a causa de vários problemas importantes de segurança ao longo dos anos.
No que diz respeito ao uso de 50% da CPU, executar algo pesado a cada 30 segundos pode facilmente consumir 50% da CPU. Muitos "globbing" poderiam fazer isso, eu acho, assim como fazer muitas correspondências de padrões de strings ou aritmética embutidas no sh.