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)
:
실행 시작 =
이 서비스를 시작할 때 실행할 매개변수가 포함된 명령입니다. 값은 아래 설명된 규칙에 따라 0개 이상의 명령줄로 분할됩니다(아래 "명령줄" 섹션 참조).
사용자 단위가 아닌 운영 체제 단위를 운영하고 있으므로 이미 다음 사항을 root
복잡하게 할 필요가 없습니다 .Exec
sudo
ExecStart=/bin/bash -c "echo 0 > /sys/module/hid_apple/parameters/fnmode"