lightdm 인증이 성공하자마자 스크립트를 실행하고 Unity가로드되기 시작합니다. 스크립트를 루트 사용자로 실행하고 싶습니다.
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
비밀번호없이 실행할 정보 :
/home/yourusername/.config/upstart/
. 노틸러스에서 홈 디렉터를 열고 Ctrl + H를 누르면 .config 디렉토리
명령을 실행하려면 루트로를 , 후 로그인, 다른 간단한 트릭이있다 :
두 단계가 필요합니다.
/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 분 이내에 한 번만 실행됩니다.