The desktop command is used to start the X Window System server (X), the primary client program (dtm), and secondary clients like dsdm and mwm. When the primary client exits, desktop will kill the X server and secondary clients and then terminate. If the X server exits, desktop will kill the primary client and then terminate.
Unless otherwise specified on the command line, desktop assumes that there are programs called X and dtm in the current search path. It starts the server on display 0 and then runs dtm and secondary clients.
An alternate primary client and/or server may be specified on the command line. The desired client program and its arguments should be given as the first command line arguments to desktop. To specify a particular server command line, append a double hyphen (--) to the desktop command line (after any client and arguments) followed by the desired server command.
A relative or full pathname must be provided for the primary client program and the server program. Otherwise, they are treated as arguments to be appended to their respective startup lines. This makes it possible to add arguments (for example, foreground and background colors) without having to retype the whole command line.
If an explicit server name is not given and the first argument following the double dash (--) is a digit, the desktop program uses that number as the display number instead of zero. All remaining arguments are appended to the server command line.
desktop also creates files called .oliniterr and .olinitout and places them in the user's home directory. All errors and warnings are put in the .oliniterr file, if the Desktop is started using desktop (if started via graphical login, errors go to the file /dev/X/xdm-errors). Output to stdout is written out to the .olinitout file.
$HOME/.olinitout
Shell scripts should normally not place processes in the background. However, if they do place processes in the background, they should use the wait command to wait for child processes to complete.
The above login would give you the shell prompt on your console; the Desktop would not start.
Note also that you cannot edit your .Xdefaults file while the Desktop is running, since the Desktop rewrites the file upon exiting. You must edit it before the Desktop has started (for example, get a non-Desktop session using the DT=no argument to login as described above, edit the file, then use the desktop command).