Процесс SH использует 50% ресурсов ЦП. Почему?

Процесс SH использует 50% ресурсов ЦП. Почему?

У меня CRON запускается каждые 30 секунд, но это подпадает под crondпроцесс, верно? Почему shкоманда потребляет 50% моего процессора, когда никто не запускает Shell Script?

решение1

Cron выполнит команду, указанную в поле команды, используя sh -c. Вы можете указать другую оболочку, установив SHELL в файле crontab.

РЕДАКТИРОВАТЬ:

Для ясности: sh -cкоманда будет запущена как подпроцесс cron, который может порождать другие подпроцессы в зависимости от заданной команды.

решение2

crondзапускается от имени пользователя root на всех знакомых мне системах:

1016 % ps -ef | grep crond 
root       342     1  0 12:37 ?        00:00:00 /usr/sbin/crond

Это на довольно современной установке Arch, но старый Slackware говорит то же самое. Если вы как некий не-root пользователь соберете файл crontab, crondвы запустите команды как ваш не-root пользователь ID. Владение root стало причиной нескольких серьезных проблем безопасности за эти годы.

Что касается использования 50% ресурсов ЦП, запуск чего-то тяжелого каждые 30 секунд может легко потреблять 50% ресурсов ЦП. Я думаю, что много "глоббинга" могли бы сделать это, как и много встроенных в sh сопоставлений шаблонов строк или арифметики.

Связанный контент