0 votos

Cómo crear un trabajo launchd automático que establezca la versión de Ruby a utilizar

Me gustaría ejecutar un ruby script automáticamente una o dos veces al día en mi MacBook con OS X Yosemite.

El problema es que actualmente tengo tres versiones de Ruby en mi sistema, incluyendo la 1.8.7 y la 2.2.1, ninguna de las cuales ejecuta el script. Así que digo rvm use system que cambia a una versión diferente, aunque no sé cómo averiguar cuál (como rvm current sólo responde "sistema"). Y entonces puedo ejecutar el script felizmente.

Sin embargo, cuando creo este pequeño script:

#!/bin/bash
rvm use system
/Users/jonathan/Library/Scripts/slogger/slogger

No se ejecutará desde la cáscara, diciendo:

RVM no es una función, seleccionar rubíes con 'rvm use ...' no funcionará. Necesitas cambiar las preferencias de tu emulador de terminal para permitir el login shell. A veces es necesario utilizar /bin/bash --login como el comando.

Sé cómo crear y establecer trabajos básicos de launchd; pero no sé cómo establecer la versión de ruby para el proceso creado si no puedo incluirlo en un script de esta manera. Aunque seguro que debe ser posible

1voto

lily ann Puntos 16

Esto no está probado (ya que no uso rvm ), pero debería haber dos formas sencillas de solucionarlo.

  1. Fuente rvm en su script (que probablemente haga de todos modos en su .profile o .bashrc o equivalente):

    #!/bin/bash
    [[ -s "${HOME}/.rvm/scripts/rvm" ]] && source "${HOME}/.rvm/scripts/rvm"
    rvm use system
    /Users/jonathan/Library/Scripts/slogger/slogger

    Esta nueva línea es una forma más corta de decir

    if [[ -s "${HOME}/.rvm/scripts/rvm" ]]; then
      source "${HOME}/.rvm/scripts/rvm"
    fi

    -s se utiliza para devolver " Verdadero si FILE existe y tiene un tamaño mayor que cero ".

  2. Y probablemente te reirás de lo fácil que era solucionarlo, simplemente haz lo que dice el mensaje y utiliza /bin/bash --login así:

    #!/bin/bash --login
    rvm use system
    /Users/jonathan/Library/Scripts/slogger/slogger

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X