Como reiniciar o fvwm2 na linha de comando?

Como reiniciar o fvwm2 na linha de comando?

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 -cfaz 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

FvwmCommandrequer que o FvwmCommandSFIFO 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

informação relacionada