Inicie o Synergy (ou qualquer aplicativo) ANTES de efetuar login no Ubuntu 16.04.2 LTS

11

Usando o Ubuntu 16.04.2 (Xenial) em Intel x64 : {Ambos, processador e instalação do Ubuntu}

Esta pergunta foi respondida um milhão de vezes, mas nenhuma das soluções funciona. Então, não quero duplicar uma pergunta, mas ela não foi respondida.

Quando eu inicializo um terminal e sudo -i , o seguinte comando funciona da maneira esperada.

'root@user-pc:~# /usr/bin/synergyc -f --no-tray --debug INFO --name 
 user-pc 192.168.xxx.xxx:24800
 [2017-05-23T09:20:44] NOTE: started client
 [2017-05-23T09:21:01] NOTE: connecting to '192.168.5.100': 
 192.168.5.100:24800
 [2017-05-23T09:21:01] NOTE: connected to server'

Então, posso utilizar o programa para seu propósito. No entanto, eu quero que isso seja feito automaticamente antes login para que eu possa utilizar o seu propósito de a tela de login. (O Synergy permite que você use um teclado e mouse em vários computadores, quase como um KVM virtual, mas em vez de apertar os botões, basta girar o mouse para a próxima tela como se eles estivessem todos conectados a uma placa gráfica)

A primeira coisa que tentei foi rc.local :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exec /usr/bin/synergyc -f --no-tray --debug INFO --name user-pc 192.168.5.100:24800

exit 0

~~~ ls /etc/rc.local -l :

-rwxr-xr-x 1 root root 390 May 22 20:56 /etc/rc.local

Então, é definitivamente executável, mas ao reiniciar o PC:

~~~ ps aux | grep syner :

'root  990  0.0  0.0  63656  5372 ?  Ssl  09:33  0:00 
 /usr/bin/synergyc -f --no-tray --debug INFO --name user-pc 
 192.168.5.100:24800'

No entanto, ele não está fazendo o que é suposto, até diálogos de unidade estão sendo chamados dizendo que algo deu errado, o que só acontece quando isso é executado, então eu posso seguramente assumir que é isso.

Minha suposição mais segura é que o programa está sendo executado muito bem, o problema é que rc.local é executado antes da sessão x iniciando, portanto, quaisquer ganchos para o teclado e mouse nunca são estabelecidos, o que também é provável o início da execução de synergyc e não tentou novamente além desse ponto.

A segunda coisa que eu tentei foi "Startup Applications", funciona, mas não depois do login, que não é o que queremos aqui.

Se a minha suposição estiver correta:

O que é uma maneira de chamar a execução de um processo depois que o servidor x é ativado, mas antes que qualquer usuário tenha que fazer o login.

Se a minha suposição não estiver correta:

    
por DeeJayh 23.05.2017 / 15:52

3 respostas

4

Para 16.04.2 crie o seguinte arquivo (não existe)

/etc/lightdm/lightdm.conf

com o conteúdo:

[Seat:*]
autologin-user=

[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --name <hostname> 192.168.x.x

Siga este guia wiki do ubuntu para obter mais informações.

EDITAR:

Em man synergyc :

  

COMEÇANDO AUTOMATICAMENTE ...

     As opções

não devem incluir -f ou --no-daemon . É importante fazer   Certifique-se de que nenhuma cópia antiga de sinergia está sendo executada, para que não possam interferir   o novo.

    
por jringoot 30.05.2017 / 14:06
0

Se você estiver usando o GDM :, usando um editor como raiz, como gksudo gedit ou sudo nano - essas etapas foram copiadas diretamente de link

No servidor

No final do arquivo / etc / gdm3 / Init / Default, logo antes da linha que diz exit 0, adicione o seguinte:

/usr/bin/killall synergys
while [ $(pgrep -x synergys) ]; do sleep 0.1; done
/usr/bin/synergys

Adicione o seguinte ao final de / etc / gdm3 / PostLogin / Default (crie este arquivo se ele ainda não existir):

/usr/bin/killall synergys
while [ $(pgrep -x synergys) ]; do sleep 0.1; done

Se você criou o arquivo, verifique se ele é executável com este comando:

sudo chmod + x / etc / gdm3 / PostLogin / Padrão

Agora, crie um arquivo de sessão /etc/X11/Xsession.d/85synergys com o seguinte conteúdo

/usr/bin/killall synergys
while [ $(pgrep -x synergys) ]; do sleep 0.1; done
/usr/bin/synergys

Por último, devemos tornar o arquivo executável com este comando:

sudo chmod +x /etc/X11/Xsession.d/85synergys

No cliente

No final de / etc / gdm3 / Init / Default, logo antes da linha que diz exit 0, adicione o seguinte:

/usr/bin/killall synergyc
while [ $(pgrep -x synergyc) ]; do sleep 0.1; done
/usr/bin/synergyc <SERVER HOSTNAME>

Certifique-se de substituir pelo nome do host ou pelo endereço IP do computador que executa as sinergias.

NOTA: Se o seu sistema foi configurado para se conectar automaticamente, esta etapa pode fazer com que o ubuntu seja interrompido imediatamente antes de ir para a área de trabalho. Se este for o caso, remova essas linhas de / etc / gdm / Init / Default e tudo deve funcionar corretamente. Se o seu sistema está pendurado neste estágio, você pode pressionar CTRL-ALT-F1 para fazer o login através da linha de comando e editar este arquivo (testado em 10.04LTS Lucid Lynx)

Adicione o seguinte ao final de / etc / gdm3 / PostLogin / Default (crie este arquivo se ele ainda não existir):

/usr/bin/killall synergyc
while [ $(pgrep -x synergyc) ]; do sleep 0.1; done

Se você criou o arquivo, verifique se ele é executável com este comando:

sudo chmod +x /etc/gdm3/PostLogin/Default

Agora, crie um arquivo de sessão /etc/X11/Xsession.d/85synergyc com o seguinte conteúdo

/usr/bin/killall synergyc
while [ $(pgrep -x synergyc) ]; do sleep 0.1; done
/usr/bin/synergyc <SERVER HOSTNAME>

Isso executará a sinergia quando qualquer usuário fizer o login. Certifique-se de substituir pelo nome do host ou pelo endereço IP do computador que executa synergys. Por último, devemos tornar o arquivo executável com este comando:

sudo chmod +x /etc/X11/Xsession.d/85synergyc
    
por Charles Green 01.06.2017 / 17:15
0

Entre na sua startup..para os novatos como eu fazerem desta forma:

  • "pesquisar no seu computador" digite start, clique em Startup Applications
  • clique em Adicionar

    • Nome: sinergia
    • Comando: navegue se quiser, mas seu / usr / bin / synergy

    é isso, NÃO ADICIONE QUALQUER "c", nada ao fim da sinergia.

Agora eu também tenho o script em execução porque eu estava com preguiça de removê-lo ... assim ambos estão lá.

[Seat:*]
autologin-user=

[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --MediaServer 192.168.2.253:port

agora para encontrar a porta é interessante, não é a porta padrão, então faça isso digite terminal

netstat  -atn

agora como eu achei que era olhar para o seu servidor ip ... Eu sei que o meu servidor SYNERGY ip assim em frente é meu cliente ip e número da porta.

    
por leebrendalee 04.10.2017 / 05:06