Проверьте его идентификатор PPID - идентификатор его родительского процесса. Сравните это с cron pid; Если они одинаковы, то это было вызвано crontab.
Это может быть сделано путем:
$ sudo ps -Af | grep cron | grep -v grep
root 6363 1 0 10:17 ? 00:00:00 /usr/sbin/cron
ПИД процесса хрон в этом примере 6363. Стоит отметить, что PPID Крон является 1 - the init process.
Теперь выяснить, что является PID вашего питона программы:
$ sudo ps -Af | grep SorinSbarnea.py
adam 12992 6363 1 12:24 pts/2 00:04:21 /usr/bin/python SorinSbarnea.py
Его ПИД-12992 и PPID является 6363, так что это был действительно вызван процессом хрон.
EDIT:
Процесс хрон не может ссылаться на свой процесс непосредственно. Следовательно, вам нужно будет пройти PPID от вашего процесса вверх до достижения PPID = 1 или PPID = /usr/sbin/cron
PID. Это можно легко сделать, используя небольшой скрипт или скрипт python; просто разобрать выходе ps
:
$ cat /proc/12992/status
....
Pid: 12992
PPid: 7238
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
...
Следующим шагом будет checkig/Proc/7238, и так далее. Опять же, это очень просто реализовать с использованием сценария оболочки или скрипта python.
Спасибо, @digitalarbeiter и @Noufal Ibrahim за то, что указали это в ваших комментариях.
Почему вы хотите это знать? – SilentGhost
Например, я хочу изменить способ вывода. При работе с терминалом я хочу использовать раскраску через escape-последовательности ANSI, но при работе с терминалом я хочу простой текст, чтобы получать приятные электронные письма. – sorin
Затем проверьте терминал, а не на cron. – digitalarbeiter