Unity Desktop의 시작 스크립트는 어디에 있습니까? 실행하고 Unity가로드되기 시작합니다. 스크립트를 루트 사용자로 실행하고

lightdm 인증이 성공하자마자 스크립트를 실행하고 Unity가로드되기 시작합니다. 스크립트를 루트 사용자로 실행하고 싶습니다.

Unity에서 시작 스크립트는 어디에 있습니까?



답변

먼저 스크립트를 넣고 /usr/bin실행 권한을 부여하십시오.

이제 /home/[user-name]/.config/autostart/시작시 실행되는 스크립트를 실행하는 .desktop 파일을 만듭니다 .

예 :-스크립트의 파일 이름을 “example”또는 “example.sh”로 지정하십시오.

다음 줄로 gedit를 사용하여 .desktop 파일을 만들고 filename.desktop으로 저장하십시오. /home/[user-name]/.config/autostart/

[Desktop Entry]
Type=Application
Exec=sudo example
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=Startup Script

여기에 Exec=sudo example또는 Exec=sudo example.sh스크립트 실행 루트로 에서 /usr/bin
의 .desktop 파일에 실행 권한을 내놔.

이제 스크립트는 시작시 실행됩니다.


답변

또 다른 가능성 :

에 파일 만들기 $HOME/.config/upstart/my-upstart-script.conf

start on desktop-start
stop on desktop-end

script
  sudo fdisk -l > /home/[user-name]/upstart-test.txt
end script

Upstart에 대한 자세한 내용 :

http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html

http://upstart.ubuntu.com/cookbook/

sudo비밀번호없이 실행할 정보 :

비밀번호없이 sudo를 사용하여 애플리케이션을 실행하는 방법은 무엇입니까?

비밀번호없이 특정 sudo 명령을 어떻게 실행합니까?


답변

명령을 실행하려면 루트로를 , 로그인, 다른 간단한 트릭이있다 :

두 단계가 필요합니다.

  • 로그인시 트리거 파일 생성
  • (설정 루트에 의해 실행 cronjob에를 작성 /etc/crontab(명령 실행) 작은 스크립트를 실행하는) 경우 에만 경우 트리거 파일이 존재한다. 트리거 파일은 동일한 스크립트에 의해 제거되므로 명령은 한 번만 실행됩니다.

순서는 다음과 같습니다.

USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore

설정

두 개의 작은 스크립트 :

로그인시 트리거 파일을 작성하는 방법 :

#!/bin/sh
touch $HOME/.trigger

그리고 하나 둘은 다음 명령을 실행합니다 :

#!/bin/bash

FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root

if [ -f $FILE ]; then
   <your command here, run by root>
   rm -f $FILE
fi
  • 두 스크립트를 두 개의 빈 파일로 복사하여 create_trigger.sh및 로 저장하십시오 run_command.sh.
  • 편의상 둘 다 실행 가능하게 만드십시오.
  • 시작 응용 프로그램에 다음 명령을 추가하십시오 (대시> 시작 응용 프로그램> 추가).

    /path/to/create_trigger.sh
    
  • /etc/crontab파일 ( sudo nano /etc/crontab)에 다음 줄을 추가하십시오 .

    * * * * * root /path/to/run_command.sh
    

이제 정의 된 명령은 로그인 후 1 분 이내에 한 번만 실행됩니다.


답변