Здравствуйте.
Есть Arch Linux (желательно, что бы работало на всех дистрах) и есть python скрипт.
Требуется определить запущен скрипт из пользовательского шела (из под рута) или по крону (крон тоже рутовый). Есть ли какие то различия в окружении, который могут помочь решить эту задачу?
Спасибо.
можно выяснить банальным bash скриптом
export script_name=my_script
if [ $( for i in $( ps -ef|grep ${script_name} |awk '{print $3}'); do ps -ef | grep $i|grep cron|grep -v grep; done|wc -l ) -eq 0 ]; then echo "run by user"; else echo "run by cron";fi
>> Требуется определить запущен скрипт из ...
Кем требуется определить? сам скрипт должен определить каким образом он запущен или это должен определять какой-то другой левый скрипт??
Так или иначе, скрипты запущенные из под залогиненного юзера и крона будут отличаться набором переменных окружений, так что попробуйте использовать их, например SHLVL (переменные хранятся в /proc/$$/environ).