Detectar que un script se ejecuta dentro de ARD

3

¿Alguien sabe de una manera de detectar que un script de shell se está ejecutando dentro de ARD (en lugar de ejecutar el mismo script localmente en la máquina)?

Observé la detección de que estamos ejecutando en modo interactivo, eso falla, ya que ambos no son interactivos.

Estoy viendo la variable $ 0, que parece más prometedora: devuelve -bash cuando se ejecuta desde la línea de comandos, devuelve el nombre del script cuando se ejecuta dentro de un script ejecutado localmente, y devuelve /bin/bash cuando se ejecuta a través de ARD. Sin embargo, no estoy seguro de si se puede contar con esos efectos.

¿Alguien tiene algún comentario sobre esto?

    
pregunta Scot 19.12.2012 - 02:28

1 respuesta

4

¿Por qué no pasar un argumento extraño cuando emite un comando de ARD?

Es más un flujo de trabajo que una etiqueta generada por el sistema, pero es probable que ARD envíe el mismo comando a launchd que el comando open -a , de modo que el nivel de indirección significa que no puede depender del típico ppid de ps -ef a encuentre el proceso que bifurcó un script específico.

¿Por qué no enviar un script de envoltorio a todas sus máquinas y usar ese script de envoltorio para registrar los argumentos a la consola? Entonces ARD puede llamar al script de envoltura.

Algo como un script almacenado en /usr/local/bin/remote funcionaría bien:

#!/bin/bash
echo "This script was called remotely and is about to run another script."
/bin/bash $*
echo "This script has just run another script."

Puedes obtener todo lo que quieras con analizar los argumentos o usar logger y / o date / sellado o registro de tiempo de la computadora que realizó el envío, pero esta es una forma común de realizar un seguimiento de la ejecución de otros scripts.

    
respondido por el bmike 19.12.2012 - 02:54

Lea otras preguntas en las etiquetas