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


11

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

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


X가로드 된 후 스크립트를 실행하고 싶습니다.
Shnd


@Shnd X는 실제로 lightdm도 X에서 실행되기 때문에 lightdm보다 먼저 시작합니다. 따라서 사용자로 무언가를 실행하려면 "lightdm 인증이 성공한 후"또는 다른 말로 "데스크톱을 시작할 때"를 원할 것입니다. 로그인 한 사용자가 있든 없든 (즉, X를 시작하는 것), 완전히 다른 질문인지 여부에 관계없이 컴퓨터를 부팅 할 때 스크립트를 실행할 수도 있습니다. 사용자로 무언가를 실행하려면 아마도 원할 것이고 대답은 init 시스템에 달려 있습니다.
erikbwork

답변:


5

먼저 스크립트를 넣고 /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 파일에 실행 권한을 내놔.

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


1
비밀번호없이 sudo를 실행하려면 askubuntu.com/questions/39281/…을
Pandya

고마워요. 그러나 시작하면 똑같은 것을 조금 더 간단하게 만들 수 있습니다 (내 대답을보십시오).
TuKsn

이것은 사양에
erikbwork

.desktop 파일에 실행 파일을 표시해야한다고 생각하지 않습니다.
Julian

4

또 다른 가능성 :

에 파일 만들기 $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 명령을 어떻게 실행합니까?


"$ HOME / .config / upstart"내 컴퓨터에 해당 디렉토리가 없습니다.
Kalamalka Kid

1
@KalamalkaKid 어떤 우분투 버전을 사용하십니까? upstart 디렉토리는이 위치에 있어야합니다 /home/yourusername/.config/upstart/. 노틸러스에서 홈 디렉터를 열고 Ctrl + H를 누르면 .config 디렉토리
TuKsn

2

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

두 단계가 필요합니다.

  • 로그인시 트리거 파일 생성
  • (설정 루트에 의해 실행 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 분 이내에 한 번만 실행됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.