
私は evrouter を使用して、マウスの追加ボタンからのキー入力をシミュレートしています。これはうまく機能しますが、これを機能させるには sudo でコマンドを実行する必要があるため、DE を使用して自動起動を処理することはできません。
init.dを検討しましたが、聞いたところによると、これはブートのさまざまな段階でのみ機能し、ルートとして実行する必要があります。後ログイン。
$ cat .evrouterrc
"Logitech G500" "/dev/input/event4" any key/277 "XKey/0"
"Logitech G500" "/dev/input/event4" any key/280 "XKey/9"
"Logitech G500" "/dev/input/event4" any key/281 "XKey/8"
$ sudo evrouter /dev/input/event4
編集:わかりました。lightdm.conf のsession-setup-script
オプションを使用してスクリプトを root として実行できるようです。私が持っているスクリプトは以下のとおりですが、予想どおり、root として実行すると はid -u
1000 ではなくなり、if ステートメントは実行されません。ユーザー名または ID を取得するために使用できる引数または変数はありますか?
答え1
コンピュータが起動すると、Linux はシステムの crontab ファイルにあるものを実行します。Cron は、コマンド、プログラム、またはスクリプトを特定の時間に実行するようにスケジュールするプログラムです。各ユーザーには crontab がありますが、この状況では、システムの crontab がそのようなジョブに適しています。
システムの起動時にコマンドやプログラムを実行するように cron を設定できます。つまり、これがおっしゃっていることだと思います。
それに応じて編集するには、コマンドを実行してシステムの crontab ファイルを開く必要があります。``vim sudo vim /etc/crontab
'' を、お気に入りの CLI テキスト エディターに自由に置き換えてください。
他のすべての行の下に、適切な行を追加します (適切なものを、コマンドなど、必要なものに置き換えます)。@reboot evrouter
注: スクリプトを作成し、その中にコマンドを配置して、crontab を使用してスクリプトを実行するのが最善のアイデアです。これは本当にあなたの選択です。
ディストリビューションによっては、コマンドを誰として実行するかを指定する必要がある場合もあります@reboot
。ほとんどの場合、crontab ファイルの先頭には、指示するためのコメントがいくつか記載されています。もちろん、このファイルの他のエントリを確認するのが最も役立つでしょう。
答え2
lightdm.conf
の値を使用することでsession-setup-script
、期待どおりにコマンドを root として実行できました。
session-setup-script=/opt/hacks/lightdm-startup
一方、別のフォルダでは:
#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi
==
if ステートメントでなぜ動作しなかったのか、まだよくわかりません=
... Bash は時々不安定になります。