Esiste un modo standard (ish) POSIX per determinare se il mio processo (sto scrivendo questo come uno script Ruby in questo momento, ma sono curioso per più ambienti, incluse le applicazioni della riga di comando Node.js e ISO C) viene eseguito in un terminale interattivo, al contrario di, cron, o esecuzione da un altro strumento, o ... così via e così via.Come posso determinare se il mio processo viene eseguito in modo interattivo?
particolare, devo acquisire input dell'utente in certe situazioni, e devo sicuro fatalmente se questo è determinably impossibile (cioè essendo gestita da cron.) Posso fare questo con una variabile ambiente, ma sono Preferisco qualcosa di più standard, se posso.
Per chi è venuto qui in cerca di Windows, prova System.Environment.UserInteractive per .Net o GetUserObjectInformation per win32, che fallirà per i processi non interattivi. – Mitch
Potresti averlo aggiunto come risposta reale e ottenuto la reputazione da esso. (= – ELLIOTTCABLE