Rilevamento che uno script viene eseguito all'interno di ARD

3

Qualcuno sa di un modo per rilevare che uno script di shell è in esecuzione all'interno di ARD (rispetto all'esecuzione dello stesso script localmente sulla macchina)?

Ho cercato di rilevare che siamo in esecuzione in modalità interattiva, che non funziona, poiché entrambi sono non interattivi.

Sto guardando la variabile $ 0, che sembra più promettente - restituisce -bash quando viene eseguita dalla riga di comando, restituisce il nome dello script quando è in esecuzione all'interno di uno script eseguito localmente e restituisce /bin/bash quando viene eseguito via ARD. Tuttavia, non sono sicuro che tali effetti possano essere conteggiati.

Qualcuno ha qualche input su questo?

    
posta Scot 19.12.2012 - 02:28
fonte

1 risposta

4

Perché non passare un argomento estraneo quando si emette un comando da ARD.

È più un flusso di lavoro che un tag generato dal sistema, ma ARD probabilmente invia lo stesso comando a launchd come il comando open -a in modo tale che il livello di indirezione significhi che non puoi dipendere dal tipico ppid da ps -ef a trova il processo che ha biforcato uno script specifico.

Perché non spingere uno script wrapper su tutte le macchine e utilizzare lo script wrapper per registrare gli argomenti sulla console? Quindi ARD può chiamare lo script wrapper.

Qualcosa come uno script memorizzato in /usr/local/bin/remote funzionerebbe bene:

#!/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."

Puoi essere tutti fantasioso con analizzare gli argomenti o utilizzare logger e / o data / registrazione o registrazione dell'ora su quale computer è stato inviato, ma questo è un modo comune per tracciare l'esecuzione di altri script.

    
risposta data 19.12.2012 - 02:54
fonte

Leggi altre domande sui tag