Como reiniciar o fvwm2 a partir da linha de comando?

5

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 ativar a nova estrutura de menu após uma atualização, o usuário deve executar manualmente uma ação: Reinicie a máquina, faça o login novamente, reinicie o fvwm. A ação preferida é escolher "Gerenciador de janelas > Reiniciar o Fvwm2", já que não é necessário fazer login e até mesmo as janelas sobreviverem.

Pergunta: Como posso invocar uma ação equivalente como "Restart Fvwm2" na linha de comando ou no sistema de gerenciamento de pacotes? O comando a seguir não funciona (nem os similares):

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 efetuar login novamente depois de chamá-lo.

    
por Chris 05.06.2012 / 08:39

5 respostas

3

O que você quer é fazer o fvwm reler a configuração ou reiniciá-la completamente. Além disso, não estou totalmente certo de que -c faz o que você quer.

O caminho rápido ou sujo seria:

killall fvwm
fvwm

Note: Please do not execute this on a BSD or Solaris system, as killall will kill the init process there. killall processname is Linux only.

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 terminar o processo antigo do fvwm, lançar um novo e até manter as janelas corretamente.

Se o fvwm for sua x-session, você ainda pode tentar usar o FvwmCommand , o interface de comando externo que parece ser capaz de enviar comandos para o fvwm atualmente em execução.

    
por 05.06.2012 / 10:33
1

O Manual nos diz:

Here are some cases when 'Restart fvwm2' or 'Restart fvwm' cause troubles:

  • running fvwm under a session manager
  • running fvwm with multi headed displays
  • having command line arguments, like -f themes-rc or -cmd
  • if the first fvwm2 in the $PATH is a different one

Estes pontos indicam por que você vê a mensagem, verifique cada um deles no seu caso.

Defina alguns atalhos de teclado para ativar o comando restart (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
    
por 05.06.2012 / 10:43
0

Para mim, os seguintes trabalhos:

kill -SIGUSR1 pid

onde pid é o id do processo do processo fvwm para reiniciar; mais fácil (no Linux):

killall -SIGUSR1 fvwm
    
por 14.03.2017 / 15:49
0

Outra alternativa é usar FvwmCommand :

$ FvwmCommand Restart
    
por 28.12.2013 / 23:27
0

FvwmCommand requer que o FvwmCommandS FIFO esteja aberto. Se você não pode ter certeza de que todos os seus usuários têm um, isso não funcionará.

Mas o FVWM irá reiniciar no SIGUSR1.

Uma reinicialização do FVWM funcionará mesmo se for o último comando em .Xsession .

Mas como outros disseram, se rodando sob um gerenciador de sessão X (e o FVWM foi compilado com suporte a gerenciador de sessão), o FVWM não será reiniciado por si só, ele simplesmente será encerrado e será reiniciado pelo gerenciador de sessão. Isso também afetará o comportamento do SIGUSR1.

    
por 19.01.2016 / 22:33

Tags