Para uma aplicação de software muito específica, mantemos uma base de máquinas rodando o fvwm 2.5. Para atualizar a estrutura do menu, o arquivo de configuração padrão fvwm2rc é substituído durante o processo de atualização realizado por um sistema de gerenciamento de pacotes. Para habilitar a nova estrutura de menu após uma atualização, o usuário deve executar manualmente uma ação: Reiniciar a máquina, fazer login novamente, reiniciar o fvwm. A ação preferida é escolher "Gerenciador de Janelas > Reiniciar Fvwm2", já que nenhum login é necessário e até mesmo as janelas sobrevivem.
Pergunta: Como posso invocar uma ação equivalente a "Reiniciar Fvwm2" na linha de comando ou no sistema de gerenciamento de pacotes? O comando a seguir não funciona (nem outros semelhantes):
fvwm -c "Restart"
[FVWM][SetupICCCM2]: <<ERROR>> another ICCCM 2.0 compliant WM is running, try -replace
"-replace" não é uma opção, pois é necessário fazer login novamente após chamá-lo.
Responder1
O que você deseja é fazer com que o fvwm releia a configuração ou reinicie-o completamente. Além disso, não tenho certeza se isso -c
faz o que você deseja.
A maneira rápida ou suja seria:
killall fvwm
fvwm
Nota: Por favor, não execute isso em um sistema BSD ou Solaris, pois killall encerrará o processo init lá. killall processname é apenas Linux.
Mas não tenho certeza se isso não destruiria algumas informações da janela (localização, dimensões etc.). Ou você pode tentar substituir a sessão atual:
fvwm --replace
Isso deve encerrar o antigo processo fvwm, iniciar um novo e até manter as janelas corretamente.
Se fvwm for sua sessão x, você ainda pode tentar usarComando Fvwm, a interface de comando externa que parece ser capaz de enviar comandos para o fvwm em execução no momento.
Responder2
O manualdiga-nos:
Aqui estão alguns casos em que 'Reiniciar fvwm2' ou 'Reiniciar fvwm' causa problemas:
- executando fvwm em um gerenciador de sessão
- executando fvwm com monitores multicabeças
- tendo argumentos de linha de comando, como -f temas-rc ou -cmd
- se o primeiro fvwm2 no $PATH for diferente
Esses pontos sugerem por que você vê essa mensagem; marque cada um deles no seu caso.
Defina alguns atalhos de teclado para ativar o comando de reinicialização (também no manual):
Key F1 R N Restart
Key F1 R N Restart fvwm -s
Key F1 R N Restart ~/bin/fvwm -f $HOME/.fvwm/main
Key F1 R N Restart fvwm1 -s -f .fvwmrc
Key F1 R N Restart xterm -n '"X console"' \
-T \"X\ console\" -e fvwm1 -s
Responder3
FvwmCommand
requer que o FvwmCommandS
FIFO esteja aberto. Se você não tiver certeza de que todos os seus usuários possuem um, não funcionará.
Mas FVWMvaireinicie em SIGUSR1.
Uma reinicialização do FVWM funcionará mesmo se for o último comando no .Xsession
.
Mas, como já foi dito, se estiver executando em um gerenciador de sessão X (e o FVWM foi compilado com suporte ao gerenciador de sessão), o FVWM não será reiniciado sozinho, ele simplesmente será encerrado e esperará ser reiniciado pelo gerenciador de sessão. Isto também afetará o comportamento do SIGUSR1.
Responder4
Para mim, o seguinte funciona:
kill -SIGUSR1 pid
onde pid é o ID do processo fvwm a ser reiniciado; mais fácil (no Linux):
killall -SIGUSR1 fvwm