0 votos

No puedo conseguir que mi demonio de lanzamiento ejecute mi shell script

Por alguna razón, no consigo que mi shell script se ejecute al arrancar el ordenador. Mi script está bien por sí mismo, pero por alguna razón mi Launch Daemon no inicia el trabajo. Por favor, ayuda.

Mi demonio de lanzamiento se guarda en /Library/LaunchDaemons/local.pingtest.plist

Mi Daemon Plist de lanzamiento: enter image description here

<?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>
    <key>Label</key>
    <string>local.pingtest</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/sh</string>
        <string>/pingtest/pingtest.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

mi shell script: enter image description here

/usr/bin/nohup /sbin/ping -i 5 ipaddress | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-lou.txt &

/usr/bin/nohup /sbin/ping -i 5 www.google.com | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-int.txt &

/usr/bin/nohup /sbin/ping -i 5 ipaddress | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-fcc.txt &

1voto

Drew Puntos 1

Primero comprobaría la ruta de pingtest.sh en relación a cómo está definida en local.pingtest.plist.

Todavía no he jugado con el demonio de lanzamiento en los Macs, pero puede haber alguna necesidad especial de que esté en /System/Library/LaunchDaemons en su lugar. No estoy seguro de por qué terminaría ignorando la otra ubicación en el momento en que está conectado y mirando a él, pero he visto las especificaciones ignorado antes en los sistemas de modo que vale la pena intentarlo.

A continuación, comprobaría cosas como identificadores de etiqueta conflictivos y que mis otras claves significan lo que creo que significan.

No parece que tu script dependa de dæmons que no sean de Launchd, pero son cosas a tener en cuenta.

0voto

klanomath Puntos 19587

"Analizando" el script launchctl arroja un error "nohup: can't detach from console: Inapropiado ioctl para el dispositivo" y espera otro comando después del último & .

Añade un tinglado adecuado y elimina el /usr/bin/nohup parte, así como la última & en su shell script y funciona:

#!/bin/sh

/sbin/ping -i 5 www.google.com | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-lou.txt &
/sbin/ping -i 5 ip1 | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-int.txt &
/sbin/ping -i 5 ip2 | /usr/bin/xargs -L 1 -I '{}' date '+%Y-%m-%d %H:%M:%S: {}' >> /pingtest/Ryan-fcc.txt

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