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
비밀번호없이 실행할 정보 :
답변
명령을 실행하려면 루트로를 , 후 로그인, 다른 간단한 트릭이있다 :
두 단계가 필요합니다.
- 로그인시 트리거 파일 생성
- (설정 루트에 의해 실행 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 분 이내에 한 번만 실행됩니다.