Это зависит от того, какая версия cron
, который у вас есть, и его настройки, но обычно это / bin / sh
. Часто это символическая ссылка на что-то еще, но ее легко найти, поскольку вы можете просто запустить ls -l / bin / sh
.
Вы можете добавить запись cron, например:
* * * * * ps -p $$ > /tmp/shelltest
или (при редактировании / etc / crontab
, вместо добавления записи в crontab для каждого пользователя, как это делается с помощью crontab -e
]):
* * * * * username ps -p $$ > /tmp/shelltest
который сообщит вам через вывод в / tmp / shelltest
имя файла оболочки. Если ваш cron
правильно настроен для отправки вам почты, вы можете пропустить > / tmp / shelltest
, чтобы получить информацию по почте, а не помещать ее в файл.
Чтобы быть немного более триксификационным, что-нибудь вроде:
* * * * * ls -l /proc/`ps -p $$ | tail -n 1 | xargs | cut -f 1 -d \ `/exe > /tmp/shelltest
должно указать вам точный используемый файл.В типичной системе Debian это будет выглядеть примерно так:
lrwxrwxrwx 1 dspillett dspillett 0 Mar 14 16:17 /proc/1356/exe -> /bin/dash
показывает, что cron в этом случае использует тире
в качестве оболочки по умолчанию.
Чтобы разбить эту команду:
ps -p $$
выводит подробную информацию о текущем процессе (ну, ps
родительский процесс), который в данном случае будет оболочкой. tail -n 1
удаляет строку заголовка, которая ps
включает xargs
- это трюк для удаления начальных пробелов в строке cut
берет первое поле из подобного, где разделителем является пробел (абсолютно жизненно важно, чтобы вы включили пробел между \ и обратным апострофом) ls -l / proc / 9999 / exe
, где «9999» - это идентификатор процесса, считанный из ps
, в котором перечислены файл, используемый для создания процесса, потому что в файловой системе '/ proc' / proc / / exe
есть ссылка на исполняемый файл процесса, идентифицированного Используйте # systemctl disable
, чтобы отключить его.