fix screen old session termination bug + db.conf rewriting bug

This commit is contained in:
2026-04-17 22:13:31 +02:00
parent 0d168bf759
commit a10f04c83e
2 changed files with 14 additions and 9 deletions

View File

@ -105,16 +105,19 @@ foreach (@db_names) { say " - $_"; }
# Create dbs for new experiments # Create dbs for new experiments
say 'Creating databases...'; say 'Creating databases...';
foreach (@experiments) { foreach (@experiments) {
say "Creating database $db_prefix\_$_..."; say " - Creating database $db_prefix\_$_...";
$dbh->do("create database `$db_prefix\_$_`") $dbh->do("create database `$db_prefix\_$_`")
or die "Failed to create database: " . $dbh->errstr; or die "Failed to create database: " . $dbh->errstr;
} }
# Kill old screen session # Kill old screen session (don't check success as a session might not exist)
remote( $ssh, "screen", "-S", $screen_name, "-X", "quit" ); say "Killing previous screen session with name $screen_name";
$ssh->system( "screen", "-XS", $screen_name, "quit" );
# Start new screen session # Start new screen session
my $invoke_runner = "perl " . shell_quote($remote_runner); 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", remote( $ssh, "screen", "-dmS", $screen_name, "sh", "-lc",
"exec $invoke_runner" ); "exec $invoke_runner" );

View File

@ -41,21 +41,23 @@ sub notify {
sub update_db_config { sub update_db_config {
my ($experiment) = @_; my ($experiment) = @_;
open( my $fhandle, '<', $remote_db_conf ) open( my $readhandle, '<', $remote_db_conf )
or die "failed to open db.conf: $!"; or die "failed to open db.conf: $!";
my @lines; my @lines;
while ( my $line = <$fhandle> ) { while ( my $line = <$readhandle> ) {
if ( $line =~ /^database=/ ) { if ( $line =~ /^database=/ ) {
$line = "database=$db_prefix\_$experiment"; $line = "database=$db_prefix\_$experiment";
} }
push @lines, $line; 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: $!"; or die "failed to open db.conf: $!";
print( $fhandle, @lines ); print( $writehandle, @lines );
close($fhandle) or die "failed to close db.conf: $!"; close($writehandle) or die "failed to close db.conf: $!";
say "Updated db.conf for database $db_prefix\_$experiment";
} }
sub cpu_count { sub cpu_count {