Since I don't have a working fork, this code will spawn a process in the background on win32. It is specifically setup to run one of my perl scripts with a few different config files and without a dos window. I drop this in my startup folder and it kicks them off with a 2 second delay between them (the spawned script monitors databases, I don't want to pound the machine with 5 connections all at once...)

#!/usr/bin/perl use strict; use warnings; use Win32::Process; use Win32; my $sleep = shift || 2; my $pl = ""; my $pldir = "C:\\perl\\code\\TrayDb\\"; my @plargs = ('-configfile bdprod.cfg', '-configfile fdprod.cfg', '-configfile vdprod.cfg', '-configfile fddvlp.cfg', '-configfile bddvlp.cfg'); sub ErrorReport{ print Win32::FormatMessage( Win32::GetLastError() ); } sub SpawnTrayDb { my $ProcessObj = shift; my $pl = shift; my $plargs = shift; Win32::Process::Create($ProcessObj, "c:\\perl\\bin\\perl.exe", "perl $pl $plargs", 0, DETACHED_PROCESS, $pldir)|| die ErrorReport(); } foreach (@plargs) { print "$pl $_\n"; sleep $sleep; SpawnTrayDb(my $po, $pl, $_); }