R: Inviare output a tty da un processo lanciato da Cron
Gabriele Villi
gvilli a iol.it
Ven 13 Ott 2000 08:44:58 UTC
At 09.48 13/10/00 +0200, you wrote:
> > Ok... mi pare giusto. Ma dici che non c'è un riferimento, una qualche
> > variabile, che dice al sistema "questa è la tty visualizzata in questo
> > momento" ?
a colpi di apropos e di man ho trovato chvt che ti permette di attivare una
console virtuale. Inoltre leggendo il man di console_ioctl ho trovato
alcune informazioni interessanti. Ti mando un piccolo programmino C che
dovrebbe fare al caso tuo. Compilalo con
cc -o whichvt whichvt.c
e ottieni il comando whichvt che stampa la struttura vt_stat (il primo
campo e' il numero di vt attiva).
Io l'ho provato sul mio sistema e funziona.Ovviamente sotto X e via telnet
ottieni un errore. Altrettanto ovvio e' che se ti fonde l'hd sono ..zi
tuoi! :)
Tanto per essere chiari, la manpage di console_ioctl dice testualmente:
WARNING: If you use the following information you are
going to burn yourself.
WARNING: ioctl's are undocumented Linux internals, liable
to be changed without warning. Use POSIX functions.
a buon intenditor...
ciao,
gv
PS: scusa, ho finito la mia scorta quotidiana di /* */ :)
-------------------- whichvt.c
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <stdlib.h>
#include <stdio.h>
#include </usr/include/linux/kd.h>
#include </usr/include/linux/vt.h>
int main(void) {
int f;
struct vt_stat v;
int res;
f=open("/dev/tty",O_RDONLY);
res=-1;
if(f) {
res= ioctl(f, VT_GETSTATE, &v);
close(f);
}
if(res==0) {
printf( "%u %u %u\n",
v.v_active,
v.v_signal,
v.v_state
);
} else {
printf( "-1 -1 -1\n");
}
return res;
}
Maggiori informazioni sulla lista
Lug
|