and extract output data
1: Have patience as the job happens in a black box.
+
+
+In order for this all to work you must have a VM which is rich enough
+to have "mkfs" which has the "-t vfat" option to make a windows vat32 partition.
+
+
+Below is a suitable script for mounting a second disk at the right
+run level and deciding if a job should be run or the VM simply brought up for
+changes or inspection.
+
+ #!/bin/sh
+
+ PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/stata
+
+ case "$1" in
+ start)
+ echo "Testing VM Job Status"
+ mount /dev/hdb1 /vmjob
+ ls /vmjob
+ if test -f "/vmjob/statajob"
+ then
+ /vmjob/runstatajob.pl /vmjob statajob
+ shutdown -h now
+ else
+ echo "Bring up for non-vm work"
+ sleep 20
+ fi
+ echo "."
+ ;;
+ esac
+
+ exit 0
+
+
+Here is a perl script which mounts the second disk and looks
+for a file holding a list of Stata jobs to run.
+
+ #!/usr/bin/env perl
+
+ my $dir = $ARGV[0];
+ my $file = $ARGV[1];
+
+ chdir("/vmjob");
+ my $dbinstalllog = "stataVM.LOG";
+ print "Trying to open logfile... $dbinstalllog\n";
+ open(OLDOUT, ">&STDOUT");
+ open(OLDERR, ">&STDERR");
+ open(STDOUT, ">>$dbinstalllog") or die "Could not open $dbinstalllog: $!";
+ open(STDERR, ">&STDOUT");
+ select(STDERR);
+ $| = 1;
+ select(STDOUT);
+ $| = 1;
+
+ print "runstatajob.pl called with dir<$dir> file<$file>\n";
+
+ system("mkdir /tmp/vmjob");
+ system("cp * /tmp/vmjob");
+ #chdir($dir);
+ chdir("/tmp/vmjob");
+
+ print "Lets look at disk availability\n";
+ system("pwd");
+ system("df -h");
+ system("ls -l");
+ system("which stata-se");
+ print "Do the following job:\n";
+ print "*****************************\n\n";
+ system("cat $file");
+ print "*****************************\n\n";
+
+ # ado directory has to go in a stata "sysdir"
+ # one such location is /usr/local/stata
+
+ # extract out ado.tar.gz
+ system("tar -zxvf ado.tar.gz");
+ system("chmod -R 777 ado");
+ system("cd ado");
+ system("mkdir /usr/local/ado");
+ # place in one of many sysdir directories
+ # visible by typing "sysdir" at the stata prompt
+ system("cp -r plus/* /usr/local/ado");
+ system("cp -r personal/* /usr/local/ado");
+ system("cd /tmp/vmjob");
+
+ open(JOB,"<$file") or die "Can not open <$file>:$!\n";
+ my $line = "";
+ while(<JOB>) {
+ chomp();
+ $line = $_;
+ print "Running stata on $line\n";
+ system("stata-se -b $line");
+ print "done\n";
+ system("ls");
+ }
+ close(JOB);
+ print "Copy results back to /vmjob\n";
+ system("cp *.log /vmjob");
+[