Earlier in the chapter, I suggested that a disconnected background process could be used as a process manager. This section presents a script which is a variation on that earlier idea. Called
dislocate, this script lets you start a process, interact with it for a while, and then disconnect from it. Multiple disconnected processes live in the background waiting for you to reconnect. This could be useful in a number of situations. For example, a
telnet connection to a remote site might be impossible to start during the day. Instead you could start it in the evening the day before, disconnect, and reconnect to it later the next morning.
A process is started by prefacing any UNIX command with
dislocate, as in:
dislocate rlogin io.jupiter.cosmosEscape sequence is '^]'. io.jupiter.cosmos:~1%
Once the processing is running, the escape sequence is used to disconnect. To reconnect,
dislocate is run with no arguments. Later, I will describe this further, including what happens when multiple processes are disconnected.
The script starts similarly to
xkibitz in Chapter 16 (p. 357)—by defining the escape character and several other global variables. The file
~/.dislocate is used to keep track of all of the disconnected processes of a single user. "
disc" provides an application-specific prefix to files that are created in
#!/usr/local/bin/expect -- set escape \035 ;# control-right-bracket set escape_printable "^\]" set pidfile "~/.dislocate" ...