[Ubuntu-BR] Dois problemas: sigusr no gnubiff e terminal não abre
Daniel Bastos
dbastos+0 em toledo.com
Sábado Agosto 22 00:22:37 UTC 2009
In article <881648.65270.qm em web45913.mail.sp1.yahoo.com>,
Otavio Silva wrote:
Bom dia, Otavio.
> (...) [D]escobri que poderia progamá-lo a fazer pequenas coisas
> relacionando comandos com os SIGUSR1 e SIGUSR2.
Não são comandos, na verdade; SIGUSR1 e SIGUSR2 são nomes
representanto números que podem ser enviados à programas em
execução. (Programas em execução são chamados de processos.) Esses
números são chamados de sinais. ``UNIX signals.''
Para enviar um sinal a um processo, é necessário outro
processo. Processos enviam sinais à processos. Isso é uma forma de
comunicação. Por exemplo, se você deseja pedir a um processo para que
ele termine sua execução, você pode enviar o sinal TERM. O programa
chamado ``kill'' é o programa UNIX dedicado a enviar sinais à
processos. Os processos são identificados por números; esses números
são chamados de PID --- process id.
%kill -TERM 31034
%[2]- Terminated sleep 60
Solicitamos a um certo processo (descrito aqui por ``sleep 60'') que
terminasse sua execução. Ele atendeu. Ele poderia ter recusado. Essa
última linha impressa é responsabilidade do shell; o processo em si
não imprimiu nada.
O fato do enviador de sinais se chamar kill é um acidente histórico; o
nome ficou ruim porque ele não serve só para matar processos; ele
serve para enviar quaisquer sinais à processos.
Todo processo, quando recebe um sinal, sempre toma uma ação. A ação
pode ser a ação de ignorar; mas o fato é que existe uma ação. A ação
padrão do sinal USR1 é terminar o processo também.
%kill -USR1 7039
%[2]- User defined signal 1 sleep 60
Essa última linha é responsabilidade do shell. O processo em si não
imprimiu nada.
Não conheço o programa que você está tentando utilizar, e também não
sei o que você deseja; mas talvez a documentação dele faça sentido
agora com essa breve introdução.
(*) O nome dos outros sinais
Existem muitos sinais. O programa kill pode listar os sinais que
existem num sistema.
%kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
%
> Quando eu abro o terminal e executo x-terminal-emulator, abre o
> terminal normal, sem problemas. Quando coloco o gksu antes aparece a
> seguinte mensagem de erro: Failed to contact the GConf daemon;
> exiting.otavio em MACHINA:~$
Não conheço tais programas. A maioria dos sistemas que já vi traz um
programa chamado su --- um curta para ``switch user.'' Executado sem
qualquer argumento, ele pede a senha do root; entregando a senha, ele
roda um shell root.
(O su no sistema que utilizado está programado a não pedir senha. O
programa id, exemplificado abaixo, indica a mudança de usuário.)
%id -u
1000
%su
%id -u
0
%exit
%id -u
1000
Muitos sistemas trazem o sudo também. O sudo pode ser visto como uma
generalização do su. Ele pode rodar um shell como o usuário desejado,
root por exemplo, ou pode rodar qualquer programa.
%sudo -u dbastos id -u
1000
%sudo -u root id -u
0
%sudo -u nobody id -u
65534
(O sudo neste sistema também está programado a não pedir senhas.)
Sucesso.
More information about the ubuntu-br
mailing list