Arch Wiki 의이 페이지 는 tty에서 키보드 반복 속도를 조정할 수있는 시스템 단위를 설명합니다. tty는 내 홈 디렉토리에 작성하고 다음 디렉토리에 심볼릭 링크했습니다.
/etc/systemd/system/kbdrate.service
-----------------------------------
[Unit]
Description=Keyboard repeat rate in tty.
[Service]
Type=oneshot
RemainAfterExit=yes
StandardInput=tty
StandardOutput=tty
ExecStart=/usr/bin/kbdrate --silent --delay 250 --rate 30
[Install]
WantedBy=multi-user.target
다음 명령을 실행하여 활성화하고 지금 실행하십시오.
# systemctl daemon-reload
# systemctl enable --now kbdrate.service
명령이 실행되고 시간이 초과 될 때까지 중지되지 않고 시간 초과 오류가 발생합니다 # journalctl
(편집 : 스크립트에 대한 일부 변경 조합으로 한 번 발생했지만 위에 설명 된 버전의 경우 계속 "활성화"됨). 이 시간 동안 systemctl status
서비스의는 서비스가 올바른 디렉토리에서로드되고 활성화되고 있으며 유일한 출력은 systemd[1]: Starting Keyboard repeat rate in tty....
.
내가 설정, 사용자 서비스로 돌려의 다양한 조합을 시도 Type=simple
, RemainAfterExit=no
, ExecStart=/usr/bin/kbdrate
(인수를 제거하는), 그리고 WantedBy=default.target
그것은하지만 아무 소용이 실행 얻을.
이 # kbdrate
명령은 자체적으로 잘 작동 Permission denied
하며 표준 입력 및 spawning을 설정할 때 사용자 서비스로 설정하는 데 실패하므로 /usr/bin/kbdrate
서비스가 적어도 kbdrate
명령을 실행할 수있는 것처럼 보입니다 .
그래서 마지막으로 내 질문은 내가 뭘 잘못하고 있는가? 내 오류를 찾기 위해 확인해야하는 다른 로그 파일이 있습니까?
아치 BBS에 대한 논의가 여기에 이 문제가 해결됩니다.
관련 게시물 :
스크립트는 터미널에 로그인하기 전에 실행할 수 있도록 활성화되어 있어야합니다. systemd.service (5) 및 systemd.exec (5)를 읽으면 다음 행의 조합을 알 수 있습니다.
StandardInput = tty Type = oneshot은 여기서 잘못되었습니다. tty가 이미 사용자 세션에서 사용 중이므로 systemd 서비스는 ExecStart를 수행하기 전에 tty가 해제 될 때까지 (발생하지 않을) 대기합니다. Oneshot 유형의 단위가 시작된 것으로 간주 되려면 ExecStart에 의해 시작된 모든 것이 먼저 종료되어야합니다.
즉, systemd가 tty를 획득 할 수 없음-> ExecStart가 호출되지 않음-> 서비스가 시작된 것으로 간주되지 않음-> systemctl이 서비스가 시작될 때까지 대기-> systemctl이 반환되지 않음.
세션이 tty에서 실행되기 전에 서비스가 시작되기 때문에 새 tty를 부팅 / 열 때 문제가되지 않습니다. tty에서 세션이 실행되기 전에 서비스가 시작될 것이므로 걱정할 필요가 없습니다. 서비스를 활성화하고 인생을 계속 진행하십시오. 윙크
기본적으로 로그인 한 동안에는이 명령을 실행할 수 없습니다. 콘솔에 로그인하기 전에 실행해야하므로이 명령을 활성화 한 다음 다시 시작해야 적용됩니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다