¿Hay un comando de terminal para determinar si una sesión de uso compartido de pantalla desde una máquina remota no se inicia, sino que también se está viendo activamente?
Detalles:
Tengo un proceso en segundo plano (Perl) que se ejecuta en una máquina remota que emite comandos del sistema como
netstat -n | grep 5900
ps aux | grep ScreensharinAgent
para verificar que se haya iniciado una sesión de uso compartido de pantalla. Ambos comandos devuelven los datos esperados en el momento en que comienza la autenticación del uso compartido de pantallas.
Sin embargo, también me gustaría el proceso para determinar si la pantalla se está viendo correctamente.
da4 's comentar aquí se acerca pero no puedo / no sé cómo modularizar log stream --predicate 'eventMessage contains "Authentication"'
.
Aquí hay una versión modificada del fragmento de código de Perl en el que estoy trabajando
$owner = "owner"
$user = trim('stat -f%Su /dev/console');
while ($user eq $owner) {
my $user = trim('stat -f%Su /dev/console');
my %screensharing_processes = (
"netstat -n | grep 5900" => "\.5900.*?ESTABLISHED",
"ps aux | grep ScreensharingAgent" => "$user.*?ScreensharingAgent.bundle",
"terminal_command_to_verify_screensharing" => "some_string_verifying_condition",
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
);
while (($command, $value) = each (%screensharing_processes)) {
my $this_process = '$command';
if ($this_process =~ /$value/s) {
print "$value is up\n";
} else {
print "$value is down\n";
}
}
print "\n";
sleep 1;
}
sub trim {
return $_[0] =~ s/^\s+|\s+$//rg;
}
¿Existe un comando de terminal que el proceso en segundo plano de la máquina remota pueda emitir para determinar si la sesión de uso compartido de pantalla no se inicia, sino que también se está viendo activamente?
Por razones obvias, soluciones como la aceptada en la pregunta que mencioné no funcionará aquí.