コマンドラインから fvwm2 を再起動するにはどうすればいいですか?

コマンドラインから fvwm2 を再起動するにはどうすればいいですか?

非常に特殊なソフトウェア アプリケーションについては、fvwm 2.5 を実行するマシンのベースを維持しています。メニュー構造を更新するには、パッケージ管理システムによって実行される更新プロセス中に、fvwm2rc のデフォルト構成ファイルを置き換えます。更新後に新しいメニュー構造を有効にするには、ユーザーは手動で操作を実行する必要があります: マシンを再起動し、再度ログインし、fvwm を再起動します。推奨される操作は、「ウィンドウ マネージャー > Fvwm2 を再起動」を選択することです。この操作ではログインが不要で、ウィンドウも存続します。

質問: コマンドラインまたはパッケージ管理システムから「Fvwm2 を再起動」と同等のアクションを呼び出すにはどうすればよいですか? 次のコマンドは機能しません (同様のコマンドも機能しません)。

fvwm -c "Restart"
[FVWM][SetupICCCM2]: <<ERROR>> another ICCCM 2.0 compliant WM is running, try -replace

「-replace」は、呼び出し後に再度ログインする必要があるため、オプションではありません。

答え1

必要なのは、fvwm に設定を再読み込みさせるか、完全に再起動することです。さらに、それが-c必要なことかどうかはよくわかりません。

速い、あるいは汚い方法は次のとおりです。

killall fvwm
fvwm

注意: killall は init プロセスを強制終了するため、BSD または Solaris システムではこれを実行しないでください。killall processname は Linux のみです。

しかし、これによってウィンドウの情報 (場所、寸法など) が破壊されないかどうかはわかりません。または、現在のセッションを置き換えてみることもできます。

fvwm --replace

これにより、古い fvwm プロセスが終了し、新しいプロセスが起動され、ウィンドウも正しく保持されるようになります。

fvwmがxセッションである場合は、Fvwmコマンド、現在実行中の fvwm にコマンドを送信できると思われる外部コマンド インターフェイス。

答え2

マニュアル次のように語っています。

「fvwm2 を再起動」または「fvwm を再起動」すると問題が発生するケースをいくつか示します。

  • セッションマネージャで fvwm を実行する
  • マルチヘッドディスプレイで fvwm を実行する
  • -f themes-rc や -cmd のようなコマンドライン引数を持つ
  • $PATHの最初のfvwm2が異なる場合

これらのポイントは、そのメッセージが表示される理由を示唆しています。自分のケースに当てはまるポイントをそれぞれチェックしてください。

再起動コマンドを実行するためのキーボード ショートカットをいくつか定義します (マニュアルにも記載されています)。

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

答え3

FvwmCommandFIFO が開いている必要がありますFvwmCommandS。すべてのユーザーが FIFO を持っているかどうかが不明な場合は、機能しません。

しかし、FVWM意思SIGUSR1 で再起動します。

FVWM の再起動は、最後のコマンドであっても機能します.Xsession

しかし、他の人が言っているように、X セッション マネージャーで実行している場合 (および FVWM がセッション マネージャー サポート付きでコンパイルされている場合)、FVWM は自動的に再起動せず、単に終了してセッション マネージャーによって再起動されることを期待します。これは SIGUSR1 の動作にも影響します。

答え4

私の場合は、次の方法が効果的です:

kill -SIGUSR1 pid

ここで、pid は再起動する fvwm プロセスのプロセス ID です。より簡単です (Linux の場合):

killall -SIGUSR1 fvwm

関連情報