Eu tenho dois scripts - um para montar algumas pastas no SSHFS - e outro para desmontar.
Eu gostaria de iniciar o script de montagem quando minha área de trabalho Ubuntu padrão for iniciada (depois de fazer login no console gráfico) - e o script de desmontagem quando eu "Sair ..." da roda dentada no canto superior direito de a área de trabalho.
Por favor, alguém pode me dizer como conseguir isso? Quais são os ganchos mais convenientes / padrão para executar comandos na inicialização / saída da área de trabalho?
Respostas:
Considerando o seu requisito de executar um trabalho quando você faz login no Unity e não em outros logons, um trabalho de sessão Upstart parece perfeito.
Você deve ter notado: os processos executados após o login na GUI estão sob um segundo
init
processo. Esseinit
é um init Upstart adequado e você pode iniciar e interromper trabalhos de sessão com base nos eventos emitidos por ele. Não são necessários privilégios de root. Melhor ainda (ou pior, dependendo da perspectiva), isso ainda não é completamente suportado por sistemas sem cabeça. Um login SSH não iniciou o init do usuário a partir de um teste rápido que eu fiz agora.Para criar um trabalho de sessão, crie um novo
.conf
arquivo~/.config/upstart
. Esse é o diretório principal padrão dos trabalhos de sessão Upstart ($XDG_CONFIG_HOME/upstart
), crie-o se não existir. Aqui está um exemplo de trabalho:Você pode controlá-lo manualmente:
O
service
comando é usado para controlar os trabalhos do sistema (aqueles em/etc/init.d
ou/etc/init
). Para controlar trabalhos de sessão, é necessário usar oinitctl
comando, usado para interagir com o Upstart.Veja
man upstart-events
para mais eventos que você pode usar.fonte
A solução foi usar tarefas iniciais. Eu exigi duas tarefas - uma disparada quando a área de trabalho é inicializada para um usuário; o segundo quando a sessão do usuário expirar. Os dois scripts a seguir funcionam para mim no Ubuntu 14.04.
Em ~ / .config / upstart / desktopOpen.conf
Em ~ / .config / upstart / desktopClose.conf
Estou irritado com o fato de que esses eventos continuarão a atender aos requisitos em versões futuras do Ubuntu. Eu pensei que vale a pena postar minha solução aqui - caso seja útil para outras pessoas.
fonte
Aqui estão algumas sugestões para executar um script após o login:
Script Linux do StackOverflow após a inicialização : o Cliff notes é para colocar seu arquivo * .sh em /etc/profile.d.
Se você deseja executar scripts na inicialização, aqui estão algumas sugestões:
Script Linux do StackOverflow após a inicialização : as notas do Cliff devem usar /etc/rc.local ou crontab.
fonte