Mar*_*óth 13 python bash crontab environment-variables
想象一下,脚本在这两组"条件"中运行:
sudo crontab./my-script.py我想要实现的是自动检测"调试模式",而无需--debug为脚本指定参数(例如).
是否有关于如何做到这一点的约定?是否有一个变量可以告诉我脚本所有者是谁?脚本是否有控制台stdout?运行一个ps | grep确定?
感谢您的时间.
Fré*_*idi 33
由于在调试模式下sys.stdin将是TTY,您可以使用os.isatty()函数:
import sys, os
if os.isatty(sys.stdin.fileno()):
# Debug mode.
pass
else:
# Cron mode.
pass
Run Code Online (Sandbox Code Playgroud)
您可以在crontab行中添加一个环境变量,并在python应用程序中检查是否设置了环境变量.
crontab的配置文件:
CRONTAB=true
# run five minutes after midnight, every day
5 0 * * * /path/to/your/pythonscript
Run Code Online (Sandbox Code Playgroud)
Python代码:
import os
if os.getenv('CRONTAB') == 'true':
# do your crontab things
else:
# do your debug things
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3952 次 |
| 最近记录: |