keychron.service
起動するたびにパラメータをオーバーライドする単純なファイルを作成しました。
[Unit]
Description=The command to make the Keychron K2 work
[Service]
Type=oneshot
ExecStart=/bin/echo 0 | sudo /usr/bin/tee /sys/module/hid_apple/parameters/fnmode
[Install]
WantedBy=multi-user.target
このスクリプトは私のキーボードをパッチするために使用され、残念ながら動作0
し/sys/module/hid_apple/parameters/fnmode
ません。問題を解決するために私がしたことは次のとおりです。
- 小切手
fnmode
は1
thekenu:~
$ cat /sys/module/hid_apple/parameters/fnmode
1
- 以下を使用して再起動し、再起動が
keychron.service
成功systemctl status
したことを確認します。
thekenu:~
$ sudo systemctl restart keychron.service
thekenu:~
$ systemctl status keychron.service
● keychron.service - The command to make the Keychron K2 work
Loaded: loaded (/etc/systemd/system/keychron.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2020-07-22 06:33:13 PDT; 3s ago
Process: 28778 ExecStart=/bin/echo 0 | sudo /usr/bin/tee /sys/module/hid_apple/parameters/fnmode (code=exited, status=0/SUCCESS)
Main PID: 28778 (code=exited, status=0/SUCCESS)
Jul 22 06:33:13 thekenu-XPS-15-9560 systemd[1]: Starting The command to make the Keychron K2 work...
Jul 22 06:33:13 thekenu-XPS-15-9560 echo[28778]: 0 | sudo /usr/bin/tee /sys/module/hid_apple/parameters/fnmode
Jul 22 06:33:13 thekenu-XPS-15-9560 systemd[1]: Started The command to make the Keychron K2 work.
fnmode
になると予想されますが、0
まだ1
thekenu:~
$ cat /sys/module/hid_apple/parameters/fnmode
1
ExecStart
次のコマンドを実行してください。keychron.service
thekenu:~
$ /bin/echo 0 | sudo /usr/bin/tee /sys/module/hid_apple/parameters/fnmode
0
- それは.
fnmode
しかし、私はそれが何をすべきかを0
入力しているようです。keychrone.service
thekenu:~
$ cat /sys/module/hid_apple/parameters/fnmode
0
答え1
ExecStart
普通のシェルラインではありません。からsystemd.service(5)
:
実行開始=
このサービスを開始したときに実行するパラメーターを含むコマンド。値は、以下の規則に従ってゼロ個以上のコマンドラインに分割されます(以下の「コマンドライン」セクションを参照)。
ユーザー単位ではなくオペレーティングシステム単位を実行しているため、すでに次のことをroot
複雑にする必要はありません。Exec
sudo
ExecStart=/bin/bash -c "echo 0 > /sys/module/hid_apple/parameters/fnmode"