1 02/06/81: The process preservation facility allows an interactive
2 process to be preserved if it becomes disconnected from its login
3 terminal due to a phone hangup or an FNP crash. The process is
4 preserved until the site's maximum inactive time has elapsed. During
5 this time, the user can call back, log in, and request reconnection
6 to the disconnected process. Other options include destruction of
7 the disconnected process with or without creation of a new process,
8 or creation of an additional process for users with permission to
9 have multiple interactive processes.
10
11
12 Saving processes: The project and the user must both be given the
13 disconnect_ok attribute by the system and project administrator in
14 order to have disconnected processes saved. The login control
15 argument, -save_on_disconnect -save requests the saving of the
16 process created by this login if it becomes disconnected. The
17 project administrator can give a user the save_on_disconnect save
18 attribute, which specifies a default of -save, eliminating the need
19 to type the argument at each login. The -no_save_on_disconnect
20 -nosave login argument can be used to override this default. The
21 system administrator can enable the facility for all users on a
22 project without modifying and installing the PDT, by giving the
23 project both the disconnect_ok and save_on_disconnect attributes in
24 the SAT. Note that this removes control of this facility from the
25 project administrator.
26
27
28 Connecting to a saved process: is controlled by a number of new login
29 control arguments: -create, -connect, -new_proc, -destroy, -list. If
30 a user who has a disconnected process logs in without specifying the
31 disposition of the process by giving one of those arguments, the user
32 is placed in the connect request loop, in which requests analogous to
33 the new control arguments are accepted create connect etc. Type
34 "help" in the connect request loop for more information. This
35 information can also be seen while logged in, by typing "help
36 connect_help", but note that the wording of this information assumes
37 that the user is presently in the connect request loop. The
38 reconnection process does deal correctly with the case where a user
39 has multiple interactive processes, some of which are disconnected.
40
41
42 The state of your process after you connect to it will be as if you
43 had just hit the QUIT button: you may have lost some output and some
44 typed ahead input, and you are at a command level one higher than you
45 were before. This is true unless you were in a subsystem that has
46 its own QUIT handler in which case the state of your process depends
47 on how your subsystem responds to QUIT. In the normal case, the
48 message "Wait for QUIT" is printed on your terminal, followed, after
49 some seconds, by "QUIT", and any other output that the process might
50 produce, such as a ready message, messages sent by other users during
51 the time of disconnection, etc. The start, release, or
52 program_interrupt commands can be used, as appropriate, to abort or
53 resume execution of the program that was running at the time of
54 disconnection. The user is not restricted to those three commands -
55 anything valid after a QUIT is valid after reconnection.
56
57
58 Restrictions: Only a process using the tty_ dim to control its login
59 terminal can be connected to. This excludes the ARPANET dim and any
60 private dims. This restriction will be removed as time permits.
61
62 Users with their own direct process overseers, and users running
63 subsystems that do their own IPS masking and signal handling might
64 encounter difficulties in saving, or reconnecting to, disconnected
65 processes.
66
67
68 Dealing with restrictions: To avoid having a saved process that
69 cannot be connected to, either request a default of -nosave, or login
70 -nosave when any of the above circumstances prevail e.g. logging in
71 over the ARPANET, or type the no_save_on_disconnect command in the
72 process. This command takes no arguments, and produces no output; it
73 causes the process to log itself out when it receives a sus_ signal.
74 This can be reversed by the save_on_disconnect command, which is only
75 effective if -save was in effect at login time, either by default or
76 by use of the argument. If you have a disconnected process that will
77 not respond to your connect attempt, use the new_proc or destroy
78 requests to dispose of it.