ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Crontab / Launchd:OS X用户权限,环境变量,Python Virtualenvs

2019-08-25 16:57:25  阅读:251  来源: 互联网

标签:python macos cron launchd crontab


我试图在我的mac上每分钟从虚拟环境自动运行python脚本.我确信我没有正确理解权限,路径和环境变量以某种至关重要的方式阻止我搞清楚这一点.

我是启用了root权限的管理员用户.我运行HomeBrew,PIP和Virtualenv来管理不同项目的python包和虚拟环境.

我想每60秒执行以下操作:

$source /.virtualenvs/myenvironment/bin/activate
$cd ~/desktop/python/
$python myscript.py
$deactivate  

我试过了:

(a)为Launchd写我自己的plist – 我相信这些文件都很好.

(b)为您管理Launchd守护进程和代理程序的程序(Launch Control和Lingon).

(c)我试过简单地编辑crontab(如果我使用sudo命令,只允许我).

处理命令的python脚本从在线源中提取数据并将其存储在sqlite表中.我可以告诉cron没有运行,因为没有触及sqlite db.

任何想法都会受到极大的赞赏.

解决方法:

你没有准确说出你尝试使用launchd和cron,但我敢打赌你没有正确使用它们中的任何一个.两者都面向运行单个独立命令(/程序),而不是shell命令序列.虽然可以使用单个cron作业或启动项执行此操作,但它会变得混乱.最简单的方法是编写一个执行所需序列的shell脚本(确保在开头包含一个shebang,并使用chmod x / path / to / script启用脚本的执行权限),并从任一个运行cron或launchd:

#!/bin/bash
source /.virtualenvs/myenvironment/bin/activate
cd ~/desktop/python/
python myscript.py
deactivate

我不建议使用Automator来包装命令序列;它是为基于GUI的脚本设计的,可能无法在仅限后台的作业中使用.

标签:python,macos,cron,launchd,crontab
来源: https://codeday.me/bug/20190825/1720878.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有