Запустіть Synergy (або будь-яку програму) ДО ВІД Вхід у Ubuntu 16.04.2 LTS


14

Використання Ubuntu 16.04.2 (Xenial) на Intel x64 : {І встановлення процесора, і Ubuntu}

На це запитання відповіли мільйон разів, але жодне з рішень не працює. Тому я не хочу дублювати запитання, але на нього не було відповіді.

Коли я запускаю термінал і sudo -i, наступна команда працює так, як очікувалося.

`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`

Тоді я маю змогу використовувати програму з її метою. Однак я хочу, щоб це було зроблено автоматично перед входом у систему, щоб я міг використовувати його призначення з екрана входу. (Синергія дозволяє використовувати одну клавіатуру та мишу на декількох комп'ютерах, майже як віртуальний 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, але перед тим, як будь-який користувач повинен увійти.

Якщо моє припущення невірно:

Довідка


1
Можливо, для gdm вам потрібно, /etc/gdm/Init/Defaultа для Unity вам потрібно додати сценарій /etc/init/lightdm.conf.
Rinzwind

@Rinzwind lightdm.conf ще занадто рано, навіть у розділі після запуску, синергетичні помилки виходять за допомогою тієї самої команди, яка прекрасно працює з терміналу. Ubuntu видає помилку, кажучи, що синергія несподівано зупинилася, ймовірно, тому, що вона не може отримати доступ до гачків, необхідних для керування клавіатурою та мишею, це потрібно, щоб це сталося правильно, коли відображається екран входу, щоб все вже працювало і працює
DeeJayh

Не дуже корисно, але, можливо, трохи втішно - я боровся з цим близько року до того, як здався (GDM) ... Я вирішив те, що, на мою думку, було так, як це може "працювати": два користувальницькі системи, один для віртуальний вхід на x-сервер (думаю, кіоск, але не показаний), а потім тригер для вбивства, коли реальний користувач входить у систему. Зрештою, для мого використання це було не варто, але, можливо, це вам допомагає. Всім раді ACME!
Марк

Якщо я не помиляюсь, для синергії потрібен X-сервер, тому він не може працювати без входу користувача
Ziazis

Просто дикий удар в темряві, але ви намагалися додати .xinitrc?
анонімний2

Відповіді:


6

Для 16.04.2 створіть наступний файл (його не існує)

/etc/lightdm/lightdm.conf

зі змістом:

[Seat:*]
autologin-user=

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

Дотримуйтесь цього посібника з вікі ubuntu для отримання додаткової інформації.


Редагувати:

Від man synergyc:

ПОЧАТОК АВТОМАТИЧНО ...

опції не повинні включати -fабо --no-daemon. Важливо переконатися, що старі копії синергії не виконуються, щоб вони не могли заважати новій.


2
Це акутно насправді приємно! Добре знати, достатньо лише додати його до /etc/lightdm/lightdm.confтого, щоб він працював повністю. Може бути, додати те, що він повинен додати у відповідь, а не лише посилання на ubuntu.
Зіазіс

1
Спаси, якщо у вас є автоматичний вхід, просто додайте синергію до своїх запуску програм.
Зіазіс

2
Досить впевнений, що це працює на більш старій версії Ubuntu, але не на моїй. Я створив /etc/lightdm/lightdm.conf, оскільки він не існував, і поставив у два рядки вище (звичайно, змінивши його, щоб використовувати власну інформацію). Зараз у мене є синхронізований зв’язок, коли екран завантажується, однак тепер я вже не отримати екран входу. Це просто порожній екран із курсором X. $ sudo find / -name lightdm.confдає, /etc/init/lightdm.confа /etc/lightdm/lightdm.confостанній - той, який я створив вручну з двома вкладишами в ньому. Видалення створеного мною lightdm.conf повертає його до робочого стану.
DeeJayh

1
Я можу підтвердити це, такий підхід працює 16.04.2!
pa4080

1
@SpasSpasov Я знаю, що так схвильований, я змінив відповідь, щоб відобразити нашу специфіку, чекаючи на експертну перевірку.
DeeJayh

1

Увійдіть у свій запуск. Для новачків, як я, це роблять так:

  • Надрукуйте "пошук свого комп'ютера", натисніть на Запуск програми
  • натисніть кнопку Додати

    • Назва: Синергія
    • Команда: перегляньте, якщо вам подобається, але його / usr / bin / synergy

    ось це, НЕ ДОДАТЬ БУДЬ-ЯКОГО "с", нічого до кінця синергії.

Тепер у мене також запущений сценарій, тому що я був лінивий, щоб його видалити .. тому обидва є.

[Seat:*]
autologin-user=

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

Тепер знайти порт цікавий, його не порт за замовчуванням, тому зробіть цей тип у терміналі

netstat  -atn

Тепер, як я виявив, це було шукати ip вашого сервера ... Я знаю, що ip мого сервера SYNERGY так прямо навпроти нього - ip клієнта і номер порту.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.