有什麼辦法讓我的Python腳本(帶有無盡的'while'循環)在OS X的後臺運行?另外,出於同樣的目的,有沒有辦法在USB驅動器上「自動運行」python腳本?在OS X的後臺運行Python
回答
如果您想讓腳本作爲自動啓動的守護進程運行,您可以使用launchctl和plist文件。
例如,Bob有一個簡單的Python腳本,這個詞「富」寫入文件,在他的家目錄每秒:
#!/usr/bin/env python
import os
import time
while True:
os.system('echo " foo" >> /Users/bob/foostore.txt')
time.sleep(1)
有它運行的守護進程,創建一個plist文件,~/Library/LaunchAgents/com.bobbob.osx.test.plist
,與內容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.bobbob.osx.test</string>
<key>Program</key>
<string>/Users/bob/pyfoo.py</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
然後使用launchctl
從終端裝載的plist:
launchctl load ~/Library/LaunchAgents/com.bobbob.osx.test.plist
這將加載該腳本,並立即在<key>Program</key>
下的<string>
元素中運行該程序。您還可以使用具有<string>
元素的數組的<ProgramArguments>
節點爲程序指定參數。欲瞭解更多信息,請參閱launchd.plist man page
如果你想刪除腳本,您可以使用launchctl
卸載命令:
launchctl unload ~/Library/LaunchAgents/com.bobbob.osx.test.plist
在腳本中使用的標籤可以是任何東西,但它應該是唯一的你的系統,所以蘋果通常使用反向域名。
至於自動運行腳本,我不認爲有任何方法可以做到這一點。
只需在後臺使用外殼以通常的方式運行Python腳本:
python myscript.py &
至於自動運行的問題,這將是一個巨大的安全漏洞,如果那件事,Mac OS X中沒有通過默認,所以,不,當然不是。但是您可以輕鬆地編寫一個實現類似目的的腳本:定期查找插入的USB驅動器,並在插入時執行某些操作(即使是從拇指驅動器運行第二個腳本)。
看到此問題用於在Unix系統上守護python腳本的方法(如系統): Python Daemon Packaging Best Practices
當然,如果這是您需要的,您可以隨時在後臺運行腳本。
我試圖launchctl
,不能讓它在埃爾卡皮坦工作,並搜查一點各地越來越發現這個post
TL;你的腳本DR
使用家當線#!/usr/bin/env python
或#!/path/to/python
chmod +x test.py
nohup /path/to/test.py &
ps ax | grep test.py
您可以使用nohup https://linux.die.net/man/1/nohup
$ nohup python <your_script.py> &
這將運行您的進程並將輸出追加到同一目錄中的文件nohup.out。 &將按照其他答案的說明在後臺運行該腳本。
- 1. 使OS X Swift應用程序在後臺運行
- 2. 不能運行在Amazon Linux實例後臺進程,但運行在MAC OS X
- 3. 在後臺運行python
- 4. 在後臺使用launchchagents運行命令行應用程序mac os x
- 5. 的Python:在OS X
- 6. 用於在後臺重複運行Ruby文件的Mac OS X選項
- 7. 在ZSH/OS X中只運行在後臺運行的腳本的一個實例
- 8. 在OS X的Sublime Text中運行pascal
- 9. 在Mac OS上運行的RSCRIPT X
- 10. 在後臺運行python服務器
- 11. 如何在後臺運行Python程序?
- 12. 在後臺運行Python腳本
- 13. 在後臺運行rtorrent使用Python
- 14. Python:如何在後臺運行def
- 15. python-paramiko - 在後臺運行命令
- 16. 在後臺運行python腳本
- 17. 在後臺運行python代碼
- 18. 在Python上運行後臺循環
- 19. Python腳本一直在後臺運行
- 20. 在OS X中更改$ PATH以運行最新版本的Python
- 21. 運行在後臺
- 22. 在後臺運行
- 23. 在後臺運行
- 24. 運行在後臺
- 25. 如何檢查在Python 2.7中運行的平臺(OS)?
- 26. 在Mac OS X上的Python
- 27. Mac OS X更新後損壞的python
- 28. 在Mac OS X上運行Virtualenv問題
- 29. 在Mac OS X上運行Cassandra
- 30. 在OS X上運行CGAL C++程序?
我相信'屏幕'應該沒問題的第一部分 – Robus 2012-03-01 19:10:22