Tengo CRON ejecutándose cada 30 segundos, pero eso entraría en el crond
proceso, ¿correcto? ¿Por qué sh
el comando consume el 50% de mi CPU cuando nadie ejecuta un Shell Script?
Respuesta1
Cron ejecutará el comando especificado en el campo de comando usando sh -c
. Puede especificar otro shell configurando SHELL en el archivo crontab.
EDITAR:
Solo para aclarar, el sh -c
comando se ejecutará como un subproceso de cron, lo que puede generar otros subprocesos según el comando dado.
Respuesta2
crond
se ejecuta como root en todos los sistemas con los que estoy familiarizado:
1016 % ps -ef | grep crond
root 342 1 0 12:37 ? 00:00:00 /usr/sbin/crond
Eso es en una instalación de Arch bastante actual, pero un Slackware antiguo dice lo mismo. Si usted, como usuario no root, crea un archivo crontab, crond
ejecutará los comandos como su ID de usuario no root. La propiedad raíz ha sido la causa de varios problemas de seguridad importantes a lo largo de los años.
En cuanto a utilizar el 50% de la CPU, ejecutar algo pesado cada 30 segundos podría fácilmente consumir el 50% de la CPU. Creo que un montón de "globbing" podrían hacer eso, al igual que hacer una gran cantidad de coincidencia de patrones de cadenas o aritmética.