Начать синергию (или любое приложение) ПЕРЕД записью в Ubuntu 16.04.2 LTS

10

Использование Ubuntu 16.04.2 (Xenial) на Intel x64 : {Оба процессора и Ubuntu устанавливаются}

На этот вопрос ответил миллион раз, но ни одно из решений не работает. Поэтому я не хочу дублировать вопрос, но на него не ответил.

Когда я запускаю терминал и sudo -i , следующая команда работает так, как ожидалось.

'[email protected]:~# /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'

Затем я могу использовать программу для своей цели. Тем не менее, я хочу, чтобы это было сделано автоматически до , чтобы я мог использовать его от экрана входа. (Synergy позволяет использовать одну клавиатуру и мышь на нескольких компьютерах, почти как виртуальный KVM, но вместо того, чтобы нажимать на переключатели, вы просто поворачиваете мышь прямо на следующий экран, как если бы все они были прикреплены к одной видеокарте)

Первое, что я пробовал, было 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

Так что это определенно исполняемый файл, но после перезагрузки ПК:

~~~ 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'

Однако он не делает то, что он должен использовать, даже звонят диалоги единства, говоря, что что-то пошло не так, что происходит только тогда, когда это выполняется, поэтому я могу с уверенностью предположить, что это так.

Мое самое безопасное предположение заключается в том, что программа выполняется очень хорошо, проблема в том, что rc.local запускается до начала сеанса x, поэтому любые привязки к клавиатуре и мыши никогда не устанавливаются, что также, вероятно, начало выполнения synergyc и не повторилось снова за этой точкой.

Вторая вещь, которую я пробовал, - это «Запуск приложений», она работает, но только после входа в систему, которая не является тем, что мы хотим здесь.

Если мое предположение верно:

Каким образом можно вызвать выполнение процесса после того, как сервер x встал, но перед тем, как любой пользователь должен войти в систему.

Если мое предположение неверно:

    

задан DeeJayh 23.05.2017 в 13:52
источник

3 ответа

3

Для 16.04.2 создайте следующий файл (его не существует)

/etc/lightdm/lightdm.conf

с содержимым:

[Seat:*]
autologin-user=

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

Следуйте этому руководству wubuntu wiki для получения дополнительной информации.

EDIT:

Из man synergyc :

  

НАЧАТЬ АВТОМАТИЧЕСКИ ...

     

параметры не должны включать -f или --no-daemon . Важно сделать   конечно, нет старых копий синергии, поэтому они не могут вмешиваться в   новый.

    
ответ дан jringoot 30.05.2017 в 12:06
источник
0

Если вы используете GDM :, используя редактор как root, например gksudo gedit или sudo nano - эти шаги были скопированы непосредственно из Ссылка

На сервере

В конце файла / etc / gdm3 / Init / Default, перед строкой, которая говорит exit 0, добавьте следующее:

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

Добавьте в конец / etc / gdm3 / PostLogin / Default (создайте этот файл, если он еще не существует):

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

Если вы создали файл, убедитесь, что он выполним эту команду:

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

Теперь создайте файл сеанса /etc/X11/Xsession.d/85synergys со следующим содержимым

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

Наконец, мы должны сделать исполняемый файл с помощью этой команды:

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

На клиенте

В конце / etc / gdm3 / Init / Default, перед строкой, которая говорит exit 0, добавьте следующее:

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

Обязательно замените имя хоста или IP-адрес компьютера, на котором выполняется synergys.

ПРИМЕЧАНИЕ. Если ваша система настроена на автоматический вход в систему, этот шаг может привести к тому, что Ubuntu будет зависать прямо перед тем, как перейти на рабочий стол. Если это так, удалите эти строки из / etc / gdm / Init / Default, и все должно работать должным образом. Если ваша система висит на этом этапе, вы можете нажать CTRL-ALT-F1, чтобы войти в систему через командную строку и отредактировать этот файл. (Проверено на 10.04LTS Lucid Lynx)

Добавьте в конец / etc / gdm3 / PostLogin / Default (создайте этот файл, если он еще не существует):

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

Если вы создали файл, убедитесь, что он выполним эту команду:

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

Теперь создайте файл сеанса /etc/X11/Xsession.d/85synergyc со следующим содержимым

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

Это приведет к запуску synergyc, когда какой-либо пользователь войдет в систему. Обязательно замените имя хоста или IP-адрес компьютера, на котором выполняется synergys. Наконец, мы должны сделать исполняемый файл с помощью этой команды:

sudo chmod +x /etc/X11/Xsession.d/85synergyc
    
ответ дан Charles Green 01.06.2017 в 15:15
0

Заходите в свой стартап .. для новичков, подобных мне, делайте это так:

  • «начать поиск вашего компьютера» в начале, нажмите «Запуск приложений»
  • нажмите Добавить

    • Название: Синергия
    • Команда: просмотр, если вам нравится, но его / usr / bin / synergy

    thats it, НЕ ДОБАВЛЯЙТЕ ЛЮБОЙ «c», ничего не до конца синергии.

Теперь у меня также есть скрипт, потому что я был слишком ленив, чтобы удалить его. Оба они есть.

[Seat:*]
autologin-user=

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

теперь, чтобы найти порт интересный, его не порт по умолчанию, поэтому сделайте это тип в терминале

netstat  -atn

теперь, как я нашел, что это был поиск вашего ip-сервера ... Я знаю свой IP-адрес SYNERGY, так что прямо от него - это номер моего клиента и номер порта.

    
ответ дан leebrendalee 04.10.2017 в 03:06