로그인 후 루트로 자동으로 명령 실행

로그인 후 루트로 자동으로 명령 실행

나는 내 마우스의 추가 버튼에서 키 누르기를 시뮬레이션하기 위해 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

편집하다:session-setup-script좋습니다. lightdm.conf의 옵션을 사용하여 루트로 스크립트를 실행할 수 있는 것 같습니다 . 내가 가지고 있는 스크립트는 아래와 같지만 루트로 실행하면 예상대로 id -u더 이상 1000이 아니며 if 문은 실행되지 않습니다. 사용자 이름이나 ID를 가져오는 데 사용할 수 있는 인수나 변수가 있습니까?

답변1

컴퓨터가 부팅된 후 Linux는 시스템의 crontab 파일에 있는 모든 내용을 실행합니다. Cron은 하루 중 매우 특정한 시간에 실행되도록 명령, 프로그램 또는 스크립트를 예약하는 프로그램입니다. 각 사용자는 crontab을 가지고 있지만 이 상황에서는 시스템의 crontab이 그러한 작업에 적합합니다.

시스템이 부팅될 때 명령이나 프로그램을 실행하도록 cron을 구성할 수 있습니다. 그래서 나는 이것이 당신이 의미하는 것이라고 생각합니다.

적절하게 편집하려면 명령을 실행하여 시스템의 crontab 파일을 열고 싶을 것입니다. sudo vim /etc/crontab``vim"을 선호하는 cli 텍스트 편집기로 자유롭게 바꾸십시오.

다른 모든 항목 아래에 줄을 추가합니다(명령 등 정확히 필요한 항목으로 대체). @reboot evrouter참고: 가장 좋은 아이디어는 스크립트를 생성하고 그 안에 명령을 배치한 다음 crontab을 사용하여 스크립트를 실행하는 것입니다. 그것은 정말로 당신의 선택입니다.

배포판에 따라 명령을 실행할 사람을 뒤에 입력해야 할 수도 있고 입력하지 않아도 될 수도 있습니다. @reboot대부분의 경우 crontab 파일에는 지침을 제공하기 위해 파일 상단에 몇 가지 설명이 있습니다. 물론 이 파일의 다른 항목을 살펴보는 것이 아마도 가장 유용할 것입니다.

답변2

lightdm.conf의 값을 사용하여 session-setup-script예상대로 루트로 명령을 실행할 수 있었습니다.

session-setup-script=/opt/hacks/lightdm-startup

한편, 다른 폴더에는 다음이 포함됩니다.

#!/bin/bash
if [ "$USER" = "j" ]
then
evrouter /dev/input/event4
fi

==왜 if 문에서 작동하지 않았 는지 잘 모르겠습니다 =. Bash는 때때로 불규칙합니다.

관련 정보