首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用launchctl (OSX)启动Python脚本

使用launchctl (OSX)启动Python脚本
EN

Stack Overflow用户
提问于 2016-02-08 23:33:04
回答 1查看 571关注 0票数 0

我有一个非常简单的测试脚本,我希望我的计算机每60秒运行一次- time_test_script.py。该脚本只是以当前时间作为名称保存一个.txt文件,并在该文件中写入一些文本。该文件位于/Users/me/Documents/Python目录中。

代码语言:javascript
复制
import datetime
import os.path
path = '/Users/me/Desktop/test_dir'
name_of_file = '%s' %datetime.datetime.now()
completeName = os.path.join(path, name_of_file+".txt")
file1 = open(completeName, "w")
toFile = 'test'
file1.write(toFile)
file1.close()
print datetime.datetime.now()

我还有一个.plist文件- test.plist,它在/Library/LaunchAgents目录中。

test.plist

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.test</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/me/Documents/Python/time_test_script.py</string>
    </array>
    <key>StartInterval</key>
    <integer>60</integer>
</dict>
</plist>

如果我手动运行脚本,它可以正常工作,即在指定的目录中创建一个.txt文件。但是,当我尝试从终端启动launchctl时,什么也没有发生。

代码语言:javascript
复制
 $ launchctl load /Library/LaunchAgents/test.plist 
 $ launchctl start com.test

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-09 00:46:29

如果在不使用python scriptname.py的情况下运行脚本,则需要将脚本标记为可执行(命令行中的chmod a+x scriptname.py),并且第一行应告诉系统要使用哪个解释器,在本例中为#!/usr/bin/python

例如:

代码语言:javascript
复制
Sapphist:~ zoe$ cat >test.py
print "Hello World"
Sapphist:~ zoe$ ./test.py
-bash: ./test.py: Permission denied

只设置了execute位:

代码语言:javascript
复制
Sapphist:~ zoe$ cat >test.py
print "Hello World"

Sapphist:~ zoe$ chmod a+x test.py
Sapphist:~ zoe$ ./test.py
./test.py: line 1: print: command not found

使用解释器和执行位:

代码语言:javascript
复制
Sapphist:~ zoe$ cat >test.py
#!/usr/bin/python
print "Hello World!"

Sapphist:~ zoe$ chmod a+x test.py
Sapphist:~ zoe$ ./test.py
Hello World!
Sapphist:~ zoe$
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35273317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档