diff --git a/scripts/deploy.pl b/scripts/deploy.pl index 83a8591..e4fe9ba 100755 --- a/scripts/deploy.pl +++ b/scripts/deploy.pl @@ -105,16 +105,19 @@ foreach (@db_names) { say " - $_"; } # Create dbs for new experiments say 'Creating databases...'; foreach (@experiments) { - say "Creating database $db_prefix\_$_..."; + say " - Creating database $db_prefix\_$_..."; $dbh->do("create database `$db_prefix\_$_`") or die "Failed to create database: " . $dbh->errstr; } -# Kill old screen session -remote( $ssh, "screen", "-S", $screen_name, "-X", "quit" ); +# Kill old screen session (don't check success as a session might not exist) +say "Killing previous screen session with name $screen_name"; +$ssh->system( "screen", "-XS", $screen_name, "quit" ); # Start new screen session my $invoke_runner = "perl " . shell_quote($remote_runner); +say +"Starting new screen session with name $screen_name and command $invoke_runner"; remote( $ssh, "screen", "-dmS", $screen_name, "sh", "-lc", "exec $invoke_runner" ); diff --git a/scripts/runner.pl b/scripts/runner.pl index 61b48ca..ce93eca 100644 --- a/scripts/runner.pl +++ b/scripts/runner.pl @@ -41,21 +41,23 @@ sub notify { sub update_db_config { my ($experiment) = @_; - open( my $fhandle, '<', $remote_db_conf ) + open( my $readhandle, '<', $remote_db_conf ) or die "failed to open db.conf: $!"; my @lines; - while ( my $line = <$fhandle> ) { + while ( my $line = <$readhandle> ) { if ( $line =~ /^database=/ ) { $line = "database=$db_prefix\_$experiment"; } push @lines, $line; } - close($fhandle) or die "failed to close db.conf: $!"; + close($readhandle) or die "failed to close db.conf: $!"; - open( my $fhandle, '>', $remote_db_conf ) + open( my $writehandle, '>', $remote_db_conf ) or die "failed to open db.conf: $!"; - print( $fhandle, @lines ); - close($fhandle) or die "failed to close db.conf: $!"; + print( $writehandle, @lines ); + close($writehandle) or die "failed to close db.conf: $!"; + + say "Updated db.conf for database $db_prefix\_$experiment"; } sub cpu_count {