Starten Sie Synergy (oder eine andere Anwendung), BEVOR Sie sich bei Ubuntu 16.04.2 LTS anmelden

14

Verwenden von Ubuntu 16.04.2 (Xenial) unter Intel x64 : {Installation von Prozessor und Ubuntu}

Diese Frage wurde millionenfach beantwortet, aber keine der Lösungen funktioniert. Ich möchte also keine Frage duplizieren, aber sie wurde nicht beantwortet.

Wenn ich ein Terminal und sudo -istarte, funktioniert der folgende Befehl wie erwartet.

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

Ich bin dann in der Lage, das Programm für seinen Zweck zu verwenden. Ich möchte jedoch, dass dies vor der Anmeldung automatisch erfolgt, damit ich den Zweck über den Anmeldebildschirm nutzen kann . (Mit Synergy können Sie eine Tastatur und eine Maus auf mehreren Computern verwenden, fast wie mit einem virtuellen KVM. Statt jedoch auf Schalter zu klicken, bewegen Sie die Maus einfach direkt auf den nächsten Bildschirm, als wären alle an eine Grafikkarte angeschlossen.)

Das erste, was ich ausprobiert habe, war 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

Es ist also definitiv ausführbar, aber beim Neustart des PCs:

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

Es wird jedoch nicht das getan, was es soll, und es werden sogar Unity-Dialoge aufgerufen, die besagen, dass etwas schief gelaufen ist. Dies geschieht nur, wenn dies ausgeführt wird. Ich kann also davon ausgehen, dass es das ist.

Meine sicherste Annahme ist, dass das Programm einwandfrei ausgeführt wird. Das Problem ist, dass rc.local vor dem Start der x-Sitzung ausgeführt wird, sodass keine Hooks für Tastatur und Maus hergestellt werden. Dies wird wahrscheinlich auch erst zu Beginn von ausgeführt Ausführung von synergycund nicht erneut versucht, über diesen Punkt hinaus.

Das zweite, was ich ausprobiert habe, war "Startup Applications", es funktioniert, aber erst nach dem Login, was wir hier nicht wollen.

Wenn meine Annahme richtig ist:

Was ist eine Möglichkeit, die Ausführung eines Prozesses aufzurufen, nachdem der x-Server hochgefahren ist, aber bevor sich ein Benutzer anmelden muss?

Wenn meine Annahme nicht stimmt:

Hilfe

DeeJayh
quelle
1
Wahrscheinlich benötigen Sie für gdm /etc/gdm/Init/Defaultund für Unity müssen Sie ein Skript hinzufügen /etc/init/lightdm.conf.
Rinzwind
@Rinzwind lightdm.conf ist immer noch zu früh, selbst im Post-Start-Bereich treten Synergiefehler auf, wenn derselbe Befehl verwendet wird, der vom Terminal aus einwandfrei funktioniert. Ubuntu gibt einen Fehler aus, der besagt, dass die Synergie unerwartet gestoppt wurde, wahrscheinlich, weil es nicht auf die Haken zugreifen kann, die zur Steuerung von Tastatur und Maus erforderlich sind.
Dies muss
Nicht sonderlich hilfreich, aber vielleicht ein wenig beruhigend - ich hatte ungefähr ein Jahr lang damit zu kämpfen, bevor ich aufgab (GDM) ... Ich entschied mich für eine Art und Weise, wie es "funktionieren könnte": zwei Benutzer-System-Einheiten, eine für ein virtueller X-Server-Login (Think Kiosk, aber nicht gezeigt), dann ein Auslöser, um dies zu beenden, wenn sich ein tatsächlicher Benutzer anmeldet. Am Ende war es für meinen Anwendungsfall nicht wert, aber vielleicht hilft Ihnen das. Alle grüßen ACME!
Mark
Wenn ich mich nicht irre, braucht Synergy allerdings einen X-Server, damit es nicht funktioniert, wenn kein Benutzer angemeldet ist
Ziazis
Nur ein wilder Stich in die Dunkelheit, aber haben Sie versucht, hinzuzufügen .xinitrc?
anonym2

Antworten:

6

Erstellen Sie für 16.04.2 die folgende Datei (sie existiert nicht)

/etc/lightdm/lightdm.conf

mit dem Inhalt:

[Seat:*]
autologin-user=

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

Befolgen Sie diese Ubuntu-Wiki-Anleitung, um weitere Informationen zu erhalten.


BEARBEITEN:

Von man synergyc:

AUTOMATISCH STARTEN ...

Optionen dürfen nicht -foder enthalten --no-daemon. Es ist wichtig sicherzustellen, dass keine alten Kopien von Synergy ausgeführt werden, damit sie die neuen nicht beeinträchtigen.

jringoot
quelle
2
Das ist wirklich sehr schön! Gut zu wissen, dass es /etc/lightdm/lightdm.confausreicht, es nur hinzuzufügen , damit es vollständig funktioniert. Vielleicht füge hinzu, was er der Antwort hinzufügen muss, anstatt nur den Ubuntu-Link zu verlinken.
Ziazis
1
Wenn Sie über eine automatische Anmeldung verfügen, fügen Sie Ihren Startanwendungen einfach Synergieeffekte hinzu.
Ziazis
2
Ich bin mir ziemlich sicher, dass dies auf einer älteren Version von Ubuntu funktioniert, aber nicht auf meiner. Ich habe /etc/lightdm/lightdm.conf erstellt, weil es nicht vorhanden war, und habe die beiden obigen Zeilen eingefügt (natürlich geändert, um meine eigenen Informationen zu verwenden). Ich habe jetzt eine Synergie-Verbindung, wenn der Bildschirm geladen wird, aber jetzt nicht mehr Holen Sie sich den Login-Bildschirm. Es ist nur ein leerer Bildschirm mit einem X-Cursor. $ sudo find / -name lightdm.confgibt /etc/init/lightdm.confund /etc/lightdm/lightdm.confwobei letzteres das ist, was ich manuell mit dem Doppelliner erstellt habe. Durch das Entfernen der von mir erstellten lightdm.conf wird die Funktionsfähigkeit wiederhergestellt.
DeeJayh
1
Ich kann bestätigen, dass dieser Ansatz am 16.04.2 funktioniert!
pa4080
1
@SpasSpasov Ich weiß, dass ich so aufgeregt bin, dass ich die Antwort geändert habe, um unsere Besonderheiten widerzuspiegeln, und auf Peer Review gewartet habe.
DeeJayh
1

Gehen Sie in Ihr Startup. Für Neulinge wie mich machen Sie es wie folgt:

  • Geben Sie "search your computer" in start ein und klicken Sie auf Startup Applications
  • Klicken Sie auf Hinzufügen

    • Name: Synergie
    • Befehl: Durchsuchen, wenn Sie möchten, aber seine / usr / bin / synergy

    das ist es, fügen Sie kein "c" hinzu, nichts bis zum Ende der Synergie.

Jetzt läuft auch das Skript, weil ich zu faul war, es zu entfernen. Also sind beide da.

[Seat:*]
autologin-user=

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

Jetzt ist es interessant, den Port zu finden, es ist nicht der Standardport, also tippe diesen Typ im Terminal ein

netstat  -atn

Nun, wie ich herausgefunden habe, wurde nach Ihrer Server-IP gesucht ... Ich kenne meine SYNERGY-Server-IP, also ist direkt gegenüber meine Client-IP und Port-Nummer.

leebrendalee
quelle