0
나는 launchD를 사용하여 매 24 시간마다 스크립트를 실행하려고했지만 이상한 이유로 오류가 계속 발생합니다 : 2; 파일을 찾을 수 없다는 것을 의미하지만 프로그램 인수의 파일 경로가 올바른지 확인하고 두 번 확인했습니다. 터미널에서 스크립트를 실행하면 스크립트가 제대로 실행됩니다. 이것이 작동하지 않는 이유에 대한 아이디어가 있습니까?LaunchD 작업 실패 이상한 이유 : 2
스크립트는 AngelList에서 새로 추가 된 시작 정보를 단순히 긁어내어 전자 메일로 보냅니다. 나는 모든 경로가 절대 수 있도록 한 내 bash는 스크립트에서
Python:
#!/opt/local/bin/python2.6
import urllib
import json
import datetime
import ast
import time
import smtplib
from pymongo import MongoClient
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
... #code omitted
def find_data():
client = MongoClient()
client = MongoClient('localhost', 27017)
db = client.tiger_labs
collection = db.new_startups
existing_names = []
for startup in collection.find():
existing_names.append(startup.get('name')) # inserts all "already-found" startups to the database
market_tags = ["mobile health", "health care", "health care information technology", "health and wellness", "personal health"] # lists out all tags
... # code omitted
text += "</html>"
if text != "<html></html>": # sends e-mail if not empty
nathan = "[email protected]"
tigerlabs = "****@tigerlabs.co, *****@tigerlabs.co"
msg = MIMEMultipart('alternative')
msg['Subject'] = "New Startups"
msg['From'] = nathan
msg['To'] = tigerlabs
part1 = MIMEText(text, 'html')
msg.attach(part1)
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login("[email protected]", "******")
server.sendmail(nathan, tigerlabs, msg.as_string())
server.quit()
print "sent"
else: # purely for testing reasons; wanted to see if launchD was executing
server = smtplib.SMTP('smtp.gmail.com:587')
server.starttls()
server.login("[email protected]", "*********")
server.sendmail("[email protected]", "*****@princeton.edu", "Hi it worked.")
server.quit()
print "not_sent"
find_data()
LaunchD:
<?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.tigerlabs.TigerLabs</string>
<key>ProgramArguments</key>
<array>
<string>/Users/nathanlam/Desktop/Programming_Labs/Coding/TigerLabs.py</string>
</array>
<key>StartInterval</key>
<integer>86400</integer>
<key>KeepAlive</key>
<dict>
<key>NetworkState</key>
<true />
</dict>
<key>StandardErrorPath</key>
<string>/tmp/test.stderr</string>
</dict>
</plist>
'/ usr/include/sys/errno.h '에있는 2는'ENOENT', 즉'no such file or directory'입니다. –