【发布时间】:2017-06-26 14:01:39
【问题描述】:
我编写了一个简单的“git pull”脚本以在 Windows 服务器上运行:
import logging
import subprocess
# Initialize logging
logger = logging.getLogger('autopull')
logger.setLevel(logging.INFO)
log_file = logging.FileHandler('autopull.log')
log_file.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s:%(levelname)s:%(message)s")
log_file.setFormatter(formatter)
logger.addHandler(log_file)
# Main part
logger.info('Started')
try:
subprocess.check_output("C:\Program Files\Git\cmd\git pull")
logger.info('Pulled repo successfully')
except:
logger.exception("Pulled failed")
我使用了一个记录器,因为调度程序总是告诉我它以退出代码 0 执行,我想仔细检查是否是这种情况。
当我手动调用脚本时,它工作正常,并且记录器会写入 autopull.log。但是,当它被调度程序调用时,记录器什么也不写。该任务以“以最高权限运行”和“无论用户是否登录都运行”运行。
是不是我做错了什么?
编辑 1:添加计划任务参数
一般:
- “无论用户是否登录都运行”和“以最高权限运行”。
- 配置:Windows Server 2012 R2
触发器:
- 触发:一次
- 详细信息:2017 年 6 月 26 日下午 12:30 - 触发后,每 1 小时无限次重复
- 状态:已启用
动作:
- 操作:启动程序
- 详细信息:D:\Anaconda3\python.exe D:\projects\foo\autopull.py
条件:
- “仅在计算机使用交流电源时启动任务”和“在计算机切换到电池电源时停止”。
设置:
- “允许任务按需运行”和“如果正在运行的任务在请求时未结束,则强制停止”。
【问题讨论】:
-
请分享上面的所有任务计划程序操作设置。
-
@ivan7707 完成!
标签: python logging windows-server-2012