Проверьте его PPID - идентификатор его родительского процесса. Сравните это с cron pid; Если они одинаковы, он вызывается crontab.
Это может быть сделано:
$ sudo ps -Af | grep cron | grep -v grep
root 6363 1 0 10:17 ? 00:00:00 /usr/sbin/cron
PID процесса cron в этом примере - 6363. Стоит отметить, что PPID cron - 1 - процесс инициализации .
Теперь выясните, какой PID вашей программы на Python:
$ sudo ps -Af | grep SorinSbarnea.py
adam 12992 6363 1 12:24 pts/2 00:04:21 /usr/bin/python SorinSbarnea.py
Его PID - 12992, а PPID - 6363, поэтому он действительно был вызван процессом cron.
EDIT:
Процесс cron может не вызывать ваш процесс напрямую. Следовательно, вам придется проходить 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 за то, что указали на это в своих комментариях.