# The interactive shell on the system console. # # In launchd terms this is a RunAtLoad + KeepAlive daemon: started when # schinit loads, and restarted whenever it exits -- which for a shell is # every time someone types `exit`. Label = os.schos.console-shell Program = /bin/sh Args = sh RunAtLoad = yes KeepAlive = yes # This job reads the console, so it has to own it: schinit puts every job in # its own session, and a session with no controlling terminal is not delivered # terminal input at all. Without this the shell echoes and executes nothing. ControllingTerminal = yes StandardIn = /dev/console StandardOut = /dev/console StandardError = /dev/console # Seconds between respawns. Guards against a shell that dies instantly # taking the machine with it; launchd calls this ThrottleInterval and # defaults to 10. One is enough for a shell someone just exited on purpose. ThrottleInterval = 1