如何为VS Code(WSL)中编写的Python脚本配置定时运行任务
方案1:WSL内配置crontab(更稳定,推荐)
失败原因排查
你之前的crontab配置缺失必要的前置配置,常见失败原因包括cron服务未启动、脚本无执行权限、脚本内路径格式错误、没有日志无法定位问题。
正确配置步骤
- 首先在WSL终端执行
which python3,记录返回的Python绝对路径,示例输出为/usr/bin/python3,后续配置请替换为你实际得到的路径。 - 给Python脚本添加执行权限:
chmod +x /mnt/c/Users/rsharma/scripts/cylance/External_devices.py - 检查脚本内容:
- 脚本第一行添加shebang声明
#!/usr/bin/env python3 - 脚本内所有路径统一使用WSL格式,例如保存CSV的路径要写
/mnt/c/Users/rsharma/scripts/cylance/external_devices,不要使用Windows格式的C:\xxx路径,否则会执行失败。
- 脚本第一行添加shebang声明
- 启动cron服务并设置开机自启:
- 执行
sudo service cron status,如果显示未运行,执行sudo service cron start - Ubuntu发行版可执行
sudo systemctl enable cron设置开机自启;也可编辑WSL内的/etc/wsl.conf,添加如下内容保证WSL启动时自动加载cron服务:[boot] command="service cron start"
- 执行
- 编辑crontab配置,添加如下条目,同时配置日志方便排错:
后续执行异常可直接查看*/10 * * * * /usr/bin/python3 /mnt/c/Users/rsharma/scripts/cylance/External_devices.py >> /var/log/external_devices_cron.log 2>&1/var/log/external_devices_cron.log定位问题。
方案2:Windows任务计划程序配置
失败原因排查
你之前的参数配置错误,直接传入脚本路径无法被wsl.exe识别执行,需要指定调用WSL内的Python解释器运行脚本。
正确配置步骤
- 新建任务,在操作选项卡的「程序或脚本」输入框填写:
C:\WINDOWS\System32\wsl.exe - 「添加参数(可选)」输入框填写:
/usr/bin/python3 /mnt/c/Users/rsharma/scripts/cylance/External_devices.py,其中Python路径替换为你之前用which python3得到的实际路径。 - 切换到触发器选项卡,新建触发器:选择「每天」,勾选「重复任务间隔」,设置为10分钟,持续时间选择「24小时」,确认保存。
- 可选配置:在常规选项卡勾选「不管用户是否登录都要运行」,避免锁屏后任务停止执行。
通用排错说明
配置定时任务前,先在WSL终端手动执行/usr/bin/python3 /mnt/c/Users/rsharma/scripts/cylance/External_devices.py,确认脚本可以正常运行、CSV文件可以正常生成,排除脚本本身的语法错误、依赖缺失、权限不足等问题。
内容的提问来源于stack exchange,提问作者Ritu Gautam
相关产品推荐
相关产品推荐

