Mac: comando Executar tela do launchctl

1

Eu tenho um script Python que gostaria de executar em um Mac na inicialização do sistema em uma sessão de tela desanexada.

O arquivo Python ( foo.py ):

import time
import datetime

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

O script da shell que o chama ( run_foo.sh ):

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

O problema que chama o script da shell: link

===========

O script Python é executado por conta própria:

> 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
...

O script Shell que chama o script Python é executado por conta própria:

> 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

Carregar o plist (que chama o shell script, que cria a tela e executa o script Python) me deixa com uma sessão de tela morta que precisa ser apagada.

> 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: aparece O launchd não permite chamar um daemon (neste caso, screen ) e gera uma exceção. Então, como se inicia uma sessão de tela na inicialização de um Mac? crontab?

    
por Sean Coonce 19.09.2013 / 06:32

0 respostas