SSHFS를 통해 일부 폴더를 마운트하는 스크립트와 마운트 해제하는 스크립트가 있습니다.
기본 Ubuntu 데스크탑이 시작될 때 (그래픽 콘솔에 로그인 한 후) 마운트 스크립트를 시작하고 싶습니다-오른쪽 상단의 톱니 바퀴에서 “로그 아웃 …”할 때 마운트 해제 스크립트 데스크탑.
누군가 이것을 달성하는 방법을 말해 줄 수 있습니까? 데스크탑 실행 / 종료시 명령을 실행하는 가장 편리한 표준 후크는 무엇입니까?
답변
다른 로그인이 아닌 Unity에 로그인 할 때 작업을 실행해야한다는 점을 고려하면 Upstart 세션 작업 이 완벽 해 보입니다.
GUI 로그인 후 실행하는 init
프로세스 는 두 번째 프로세스에 있습니다. 이는 init
올바른 Upstart init이며 해당 이벤트에서 생성 된 이벤트를 기반으로 세션 작업을 시작 및 중지 할 수 있습니다. 루트 권한이 전혀 필요하지 않습니다. 더 나은 아직 (또는 관점에 따라 더 나쁘다), 이것은 헤드리스 시스템에서 아직 완전히 지원되지는 않습니다. SSH 로그인이 지금 막 만든 빠른 테스트에서 사용자 init를 시작하지 않았습니다.
세션 작업을 만들려면에서 새 .conf
파일을 만드십시오 ~/.config/upstart
. 이것이 Upstart 세션 작업 ( $XDG_CONFIG_HOME/upstart
) 의 기본 기본 디렉토리입니다 ( 없는 경우). 다음은 작업 예입니다.
tee ~/.config/upstart/myjob.conf <<EOF
description "My job"
start on desktop-start
stop on desktop-end
script
firefox 'http://upstart.ubuntu.com/cookbook/#session-job'
end script
EOF
수동으로 제어 할 수 있습니다.
start myjob
# or
initctl start myjob
이 service
명령은 시스템 작업 ( /etc/init.d
또는 in /etc/init
) 을 제어하는 데 사용됩니다 . 세션 작업을 제어하려면 initctl
Upstart와 상호 작용하는 데 사용되는 명령 을 사용해야합니다 .
man upstart-events
사용할 수있는 더 많은 이벤트를 참조하십시오 .
답변
해결책은 시작 작업을 사용하는 것이 었습니다. 두 가지 작업이 필요했습니다. 하나는 사용자가 데스크톱을 초기화 할 때 발생합니다. 두 번째는 사용자 세션이 만료 될 때입니다. 다음 두 스크립트는 Ubuntu 14.04에서 작동합니다.
~ / .config / upstart / desktopOpen.conf에서
description "Desktop Open Task"
start on desktop-start
task
script
# Commands to mount sshfs go here as shell-script.
end script
~ / .config / upstart / desktopClose.conf에서
description "Desktop Close Task"
start on session-end
task
script
# Commands to unmount sshfs go here as shell-script.
end script
이러한 이벤트가 향후 Ubuntu 릴리스의 요구 사항을 계속 충족 할 것이라고 생각합니다. 다른 사람들이 사용할 수 있도록 여기에 솔루션을 게시 할 가치가 있다고 생각했습니다.
답변
로그인 후 스크립트를 실행하기위한 제안 사항은 다음과 같습니다.
부팅 후 StackOverflow Linux 스크립트 : Cliff 노트는 * .sh 파일을 /etc/profile.d에 넣습니다.
부팅 할 때 스크립트를 실행하려면 다음을 수행하십시오.
부팅 후 StackOverflow Linux 스크립트 : Cliff 노트는 /etc/rc.local 또는 crontab을 사용하는 것입니다.