PVMD(1PVM) | PVM Version 3.4 | PVMD(1PVM) |
pvmd, pvmd3 - PVM daemon
pvmd [ -options ] [ hostfile ]
Pvmd3 is a daemon process which coordinates unix hosts in a virtual machine. One pvmd3 must run on each host in the group. They provide the communication and process control functions needed by the user's PVM processes. The daemon can be started manually with a host file argument that will automatically start the remote pvmds. The local and remote pvmds can also be started from the PVM console program pvm.
The name of the daemon executable is pvmd3. It is usually started by a shell script, $PVM_ROOT/lib/pvmd.
[v3.4 and later] Before running pvmd3, pvmd sources any commands in $HOME/.pvmprofile if this file exists.
The following options may be specified on the command line when starting the master pvmd or PVM console:
The following options are used by the master pvmd when starting slaves and are only of interest to someone writing a hoster. Don't just go using them, now.
Each host in the virtual machine must have an entry in the host file. Lines beginning with a splat ( # ), optionally preceded by whitespace, are ignored.
A simple host file might look like:
# my first host file
thud
fred
wilma
barney
betty
This specifies the names of five hosts to be configured in the virtual machine.
The master pvmd for a group is started by hand on the localhost, and it starts slaves on each of the remaining hosts using the rsh or rexec command. The master host may appear on any line of the host file. Host names cannot be numeric (IP) addresses, because they are passed to rsh and rexec(), which usually don't accept addresses.
The simple format above works fine if you have the same login name on all five machines and the name of the master host in your .rhosts files on the other four.
There are several host file options available:
*** Make Sure *** that you appropriately set the $PVM_VMID environment variable in any shells from which PVM application tasks or the "pvm" console will be run, or else they won't know which virtual machine to attach to!
By default, all hosts which are added to the virtual machine will inherit the same VMID. If hosts are added to the virtual machine which are running older versions of PVM (prior to 3.4.4), then the VMID will be ignored for those hosts, and hence these machines can only be added to one virtual machine for the given user. The VMID need not be consistent on every host in a virtual machine (although this is not necessarily advisable).
A dollar sign ( $ ) in an option introduces a variable name, for example $PVM_ARCH. Names are expanded from environment variables by each pvmd.
Each of the flags above has a default value. These are:
You can change these by adding a line with a star ( * ) in the first field followed by the options, for example:
* lo=afriend so=pw
This sets new default values for 'lo' and 'so' for the remainder of the host file, or until the next '*' line. Options set on the last '*' line also apply to hosts added dynamically using pvm_addhosts().
Host options can be set without starting the hosts automatically. Information on host file lines beginning with '&' is stored, but the hosts are not started until added using pvm_addhosts().
Example host file:
# host file for testing on various platforms fonebone refuge # installed in /usr/local here sigi.cs dx=/usr/local/pvm3/lib/pvmd # borrowed accts, "guest", don't trust fonebone * lo=guest so=pw sn666.jrandom.com cubie.misc.edu # really painful one, must start it by hand and share a homedir & igor.firewall.com lo=guest2 so=ms ep=bob/pvm3/bin/$PVM_ARCH
When adding a host with this option set you will see on the tty of the pvmd:
*** Manual startup *** Login to "honk" and type: $PVM_ROOT/lib/pvmd -S -d0 -nhonk 1 80a9ca95:0cb6 4096 2 80a95c43:0000 Type response:
after typing the given command on host honk, you should see a line like:
ddpro<2312> arch<ALPHA> ip<80a95c43:0a8e> mtu<4096>
type this line on the tty of the master pvmd. You should then see:
Thanks
and the two pvmds should be able to communicate.
Note you can't start the master using the console or background it when using this option.
You can force PVM to overload a host (start more than one pvmd on it) by putting a '$' before the host name in the host file. This is not recommended unless you know what you're doing and have a good reason for it. You must build the PVM source with option OVERLOADHOST defined for it to work.
You may also need to use the ip= hostfile option to define several names with the same IP address. If two or more hosts in a PVM have the same name, they cannot be identified uniquely.
The preferred method of stopping all the pvmds is to give the halt command in the PVM console. This kills all PVM tasks, all the remote daemons, the local daemon, and finally the console itself. If the master pvmd is killed manually it should be sent a SIGTERM signal to allow it to kill the remote pvmds and clean up various files.
The pvmd can be killed in a manner that leaves the file /tmp/pvmd.uid behind on one or more hosts. Uid is the numeric user ID (from /etc/passwd) of the user. This will prevent PVM from restarting on that host. Deletion of this file will fix this problem:
rm `( grep $user /etc/passwd || ypmatch $user passwd )
| awk -F: '{print "/tmp/pvmd."$3; exit}'`
$PVM_ROOT/lib/pvmd PVM daemon startup script
$PVM_ROOT/lib/$PVM_ARCH/pvmd3 PVM daemon executable
$HOME/.pvmprofile Shell commands read by pvmd before
running pvmd3
$HOME/pvm3/bin/$PVM_ARCH Private PVM executable directory
$PVM_ROOT/pvm3/bin/$PVM_ARCH System PVM executable directory
/tmp/pvmd.uid Pvmd local socket address
/tmp/pvml.uid Pvmd runtime error log
$HOME/.rhosts File allowing access to a host from
other hosts
06 May, 1994 |