Linux 데스크톱 시스템에서 사용자가 로그인 할 때 명령을 실행하고 싶습니다.
다른 게시물을 읽은 후 명령을 삽입하려고 ~/.bashrc
했지만 실패했습니다. 또한 시스템은 사용자 로그인에 그래픽 인터페이스를 사용하므로 명령이 쉘의 시작과 관련되어서는 안됩니다.
또한 /etc/profile.d
결과없이 포함 된 스크립트 중 하나에 명령을 추가하려고했습니다 .
다른 방법이 있습니까? 로그인 후 시스템이 읽는 파일이 있습니까?
답변
그래픽 디스플레이 관리자가 클래식 시작 파일을 읽을 것이라는 보장은 없습니다. 이것은 배포판과 디스플레이 관리자간에 변경됩니다. 그래도 다음 중 하나가 작동합니다.
-
데스크탑 환경의 기본 방법을 사용하여 시작 응용 프로그램을 설정하십시오. 세부 사항은 사용중인 DE에 따라 다르지만 명령을 실행하고 시작 애플리케이션 목록에 추가하는 스크립트를 작성할 수 있습니다. 예를 들어, 내 시스템 (Cinnamon)에서 “System Settings”=> “Startup Applications”를 통해이를 수행 할 수 있습니다.
-
를 사용하십시오
~/.xprofile
. 이는 최소한 GDM, LDM, LightDM 및 LXDM 로그인 관리자가 제공합니다. -
위의 방법으로도 작동하지 않으면 다음 명령을 추가하십시오
~/.profile
: 이것은 로그인 쉘의 기본 초기화 파일이며 로그인시 일부 그래픽 쉘에서도 읽습니다. -
@derobert이 의견에서 지적했듯이 무료 데스크톱 표준을 사용할 수도 있습니다 .
자동 시작 디렉토리는 “데스크톱 기본 디렉토리 사양”의 “이 사양 참조”섹션에 따라 정의 된 $ XDG_CONFIG_DIRS / autostart입니다.
동일한 파일 이름이 여러 자동 시작 디렉토리 아래에있는 경우 가장 중요한 디렉토리 아래의 파일 만 사용해야합니다.
예 : $ XDG_CONFIG_HOME이 설정되지 않은 경우 사용자 홈 디렉토리의 자동 시작 디렉토리는 ~ / .config / autostart /입니다.
예 : $ XDG_CONFIG_DIRS가 설정되지 않은 경우 시스템 전체 자동 시작 디렉토리는 / etc / xdg / autostart /입니다.
예 : $ XDG_CONFIG_HOME 및 $ XDG_CONFIG_DIRS가 설정되지 않고 /etc/xdg/autostart/foo.desktop 및 ~ / .config / autostart / foo.desktop 파일 두 개가 존재하면 ~ / .config / autostart / foo 파일 만 있습니다. ~ / .config / autostart /가 / etc / xdg / autostart /보다 중요하므로 desktop이 사용됩니다.
은 ~/.bashrc
너무 그래픽 여부, 로그인 쉘에 무시되고, 그것은 단지 대화 형 비 로그인 쉘에 의해 읽기, 여기에 완전히 무관하다.
답변
다른 옵션은 pam을 사용하는 것입니다. 그러면 로그온 작업을 정의 할 수있는 정확한 방법이 제공됩니다.
일반적인 작업의 경우 pam_exec ( http://manpages.ubuntu.com/manpages/hardy/man8/pam_exec.8.html ) 를 사용할 수 있습니다 . 그러나 안전한 방법으로보다 구체적인 작업을 수행해야하는 경우 일반적으로 사용되는 pam_mount (온-로그인 마운트 -http : //manpages.ubuntu) 와 같이보다 적합한 pam 모듈이 더 적합 할 수 있습니다. COM / 맨 / 강건한 /는 man8 / pam_mount.8.html ) 또는 pam_echo (임의의 메시지에 대한 사용자 – http://manpages.ubuntu.com/manpages/hardy/man8/pam_echo.8.html ).
일반적으로 pam은 로그인을 사용자 정의하기위한 매우 깔끔한 시스템이므로 다른 사람들이 제안한 것처럼 잠재적으로 안전하지 않은 스크립팅에 의존하는 대신 조금 더 살펴볼 수 있습니다.
예
상당히 일반적인 /etc/pam.d/system-auth가 주어지면 다음과 같이 로그인 후 pam_exec를 사용할 수 있습니다.
session optional pam_ssh.so
session required pam_limits.so
session required pam_env.so
session optional pam_mktemp.so
session required pam_unix.so
session optional pam_exec.so /usr/local/bin/my_prog
session optional pam_permit.so
어디 /usr/local/bin/my_prog
성공적인 사용자 로그인 후에 실행되는 임의의 프로그램입니다.
답변
이 주제에 따르면 : 로그인 후 자동으로 명령을 실행 하시겠습니까?
당신은의 솔루션이 .bashrc
시작 응용 프로그램의 (안 당신이 필요) 및 솔루션을. 나는 Daniel S를 인용한다.
gnome-session-properties
시작 응용 프로그램을 구성하는 데 사용할 수 있습니다.또한 시스템 부팅시 응용 프로그램을 실행하려면 crontab에 다음과 같은 규칙을 추가 할 수 있습니다 (crontab으로 편집
crontab
).
-e@reboot /run/this/program/at/boot >/dev/null 2>&1