launchctlを使用して、Macでgetintraday.pyの自動プログラムを設定しようとしています。
1.run.sh を作成する
getintraday.py ディレクトリに移動します
cd /Users/yindeyong/Desktop/Django_Projects/pythonstock
vi run.sh
以下はrun.shです:
#!/bin/sh
# record start time
echo `date` >> /Users/yindeyong/Desktop/Django_Projects/pythonstock/log &&
# go to getintraday.py directory
cd /Users/yindeyong/Desktop/Django_Projects/pythonstock &&
# Execute python scripts according to my virtual environment
/Users/yindeyong/Desktop/Django_Projects/envs/stockenv/bin/python3.6 getintraday.py
# Execute done
echo 'finish' >> /Users/demo/log/Users/yindeyong/Desktop/Django_Projects/pythonstock/log
次に、保存してかなり
:wq
chmod 777 run.sh
2. plist ドキュメントを作成する
~/Library/LaunchAgents に移動,com.demo.plist を作成
以下は、com.demo.plist の作成です。
<?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>
<!-- Label -->
<key>Label</key>
<string>com.demo.plist</string>
<!-- the script to Execute -->
<key>ProgramArguments</key>
<array>
<string>/Users/yindeyong/Desktop/Django_Projects/pythonstock/run.sh</string>
</array>
<!-- the time to Execute -->
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>37</integer>
<key>Hour</key>
<integer>10</integer>
</dict>
<!-- Standard output file -->
<key>StandardOutPath</key>
<string>/Users/yindeyong/Desktop/Django_Projects/pythonstock/run.log</string>
<!--
Standard error output file, error log -->
<key>StandardErrorPath</key>
<string>/Users/yindeyong/Desktop/Django_Projects/pythonstock/run.err</string>
</dict>
</plist>
ロードコマンド
launchctl load -w com.demo.plist
しかし、/Users/yindeyong/Desktop/Django_Projects/pythonstock/com.demo.plist: No such file or directoryを取得します