Mac: команда запуска экрана из launchctl

668
Sean Coonce

У меня есть скрипт Python, который я хотел бы запустить на Mac при запуске системы в отдельном сеансе экрана.

Файл Python ( foo.py):

import time import datetime  while True: print 'hello', datetime.datetime.now() time.sleep(2) 

Скрипт оболочки, который его вызывает ( run_foo.sh):

#!/bin/bash username=`whoami` _python=`which python` screen -dm -S run_foo $_python /Users/$username/foo.py 

Плист, который вызывает сценарий оболочки: https://gist.github.com/cooncesean/6617008

===========

Скрипт Python работает нормально сам по себе:

> python foo.py hello 2013-09-18 21:20:22.132170 hello 2013-09-18 21:20:24.133420 hello 2013-09-18 21:20:26.134697 ... 

Сценарий Shell, который вызывает скрипт Python, работает самостоятельно:

> sh run_foo.sh There is a screen on: 1922.run_foo (Detached) 1 Socket in /var/folders/4z/0413fcs523l8nz12xbvng0bh0000gn/T/.screen.  > screen -r run_foo hello 2013-09-18 21:24:57.243103 hello 2013-09-18 21:24:59.244349 

Загрузка plist (который вызывает скрипт оболочки, который создает экран и запускает скрипт Python) оставляет мне сеанс мертвого экрана, который необходимо стереть.

> launchctl load ~/Library/LaunchAgents/start-foo.plist  > screen -list There is a screen on: 1951.run_foo (Dead ???) Remove dead screens with 'screen -wipe'. 1 Socket in /var/folders/4z/0413fcs523l8nz12xbvng0bh0000gn/T/.screen. 

UPDATE: Это кажется не запуск программ позволяет вызывать демон (в данном случае screen) и вызывает исключение. Итак, как начать сеанс экрана при запуске на Mac? кронтаб?

1

0 ответов на вопрос

Похожие вопросы