Czy istnieje standardowy (ish) POSIX sposób ustalania, czy mój proces (piszę to teraz jako skrypt Ruby, ale jestem ciekawy dla wielu środowisk, w tym aplikacji wiersza poleceń Node.js i ISO C) jest uruchamiany w terminalu interaktywnym, w przeciwieństwie do, powiedzmy, crona, lub wykonania z innego narzędzia, lub ... tak dalej i tak dalej.Jak ustalić, czy mój proces jest uruchamiany interaktywnie?
W szczególności potrzebuję uzyskać dane wejściowe użytkownika w pewnych sytuacjach i muszę zakończyć się niepowodzeniem, jeśli jest to możliwe nie jest możliwe (tzn. Uruchamiane przez crona.) Mogę to zrobić ze zmienną środowiskową, ale " Wolę coś bardziej standardowego, jeśli mogę.
Dla każdego, kto przyszedł tutaj, szukając okien, spróbuj użyć System.Environment.UserInteractive dla .Net lub GetUserObjectInformation dla win32, co nie powiedzie się dla procesów nieinteraktywnych. – Mitch
Mogłeś dodać to jako faktyczną odpowiedź i zdobyć z niej reputację. (= – ELLIOTTCABLE