- 1. 概要
- 2. 対策
1. 概要
「awesome」というデスクトップを使っていた時の話です。
細かい、わかりにくいところは、「awesome - 共通事項」をご参照ください。
「awesome」で、「xfce4-clipman」というクリップボードマネージャを使いたくて、ログイン時に自動起動しようと
~/.config/awesome/rc.lua
内に
-- Autostart applications
awful.spawn.with_shell("~/.config/awesome/autostart.sh")
を記述。
~/.config/awesome/autostart.sh
内に
#!/bin/sh
・・・ 略 ・・・
xfce4-clipman &
てなことを書いて、実行権限をつけておりましたらば・・・・。
思い通りに、ログイン時に起動できたのはいいものの。
ログイン状態で、「awesome」を再起動すると
てな、ダイアログが表示されます。
二重起動しちゃうから、だめってんですな・・・。
以下の中で、「sh」の関数の文法に関しては、「Functions - Shell Scripting Tutorial」を参考にさせていただきました。
2. 対策
「ArcoLinux 20.7.5 awesome」に対策の実例がありました。
同じものを少しはしょって書きますと。
#!/bin/bash
function run {
if ! pgrep $1 ;
then
$@&
fi
}
run "xfce4-clipman"
と書いておる。
「function」で、「pgrep」を使用して、実行中か判断し、実行中でない時だけ、起動するわけです。
うまく、二重起動を防いでおりますな。
「bash」でなく、「sh」で書こうとして、少し戸惑いがありましたが「sh」で書くならば
#!/bin/sh
run()
{
if ! pgrep $1 ;
then
$@&
fi
}
run "xfce4-clipman"
ということになります。
これで、うまいこといったのだ!
めでたし、めでたし。
これは、使えるわ。
|
|