Mulai Synergy (atau aplikasi apa pun) SEBELUM masuk di Ubuntu 16.04.2 LTS

14

Menggunakan Ubuntu 16.04.2 (Xenial) pada Intel x64 : {Keduanya Prosesor dan Ubuntu instal}

Pertanyaan ini telah dijawab sejuta kali, tetapi tidak ada solusi yang berhasil. Jadi saya tidak ingin menduplikasi pertanyaan, tetapi belum dijawab.

Ketika saya menjalankan terminal dan sudo -i, perintah berikut berfungsi seperti yang diharapkan.

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

Saya kemudian dapat memanfaatkan program untuk tujuan itu. Namun, saya ingin ini dilakukan secara otomatis sebelum login sehingga saya dapat memanfaatkan tujuannya dari layar login. (Synergy memungkinkan Anda untuk menggunakan satu keyboard dan mouse di beberapa komputer, hampir seperti KVM virtual tetapi alih-alih menekan tombol, Anda cukup menggulirkan mouse Anda ke layar berikutnya seolah-olah semuanya terpasang pada satu kartu grafis)

Hal pertama yang saya coba adalah 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

Jadi sudah pasti dapat dieksekusi, tetapi setelah me-reboot 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`

Namun itu tidak melakukan apa yang seharusnya, bahkan dialog persatuan disebut mengatakan sesuatu yang salah, yang hanya terjadi ketika ini dijalankan, jadi saya dapat dengan aman menganggap itu.

Asumsi saya yang paling aman adalah bahwa program sedang berjalan dengan baik, masalahnya adalah bahwa rc.local dijalankan sebelum sesi x dimulai sehingga setiap kait ke keyboard dan mouse tidak pernah dibuat, yang kemungkinan juga hanya dilakukan pada awal pelaksanaan synergycdan tidak berusaha lagi di luar titik itu.

Hal kedua yang saya coba adalah "Aplikasi Startup", itu berfungsi, tetapi tidak sampai setelah login, yang tidak kita inginkan terjadi di sini.

Jika asumsi saya benar:

Apa cara untuk memanggil eksekusi dari suatu proses setelah x server habis, tetapi sebelum pengguna harus login.

Jika asumsi saya tidak benar:

Tolong

DeeJayh
sumber
1
Mungkin untuk gdm yang Anda butuhkan /etc/gdm/Init/Defaultdan untuk Unity Anda perlu menambahkan skrip /etc/init/lightdm.conf.
Rinzwind
@Rinzwind lightdm.conf masih terlalu dini, bahkan di bagian post-startnya, sinergi kesalahan dengan menggunakan perintah yang sama yang berfungsi dengan baik dari terminal. Ubuntu melempar kesalahan dengan mengatakan sinergi berhenti tiba-tiba, kemungkinan karena tidak dapat mengakses kait yang diperlukan untuk mengontrol keyboard dan mouse, perlu itu terjadi tepat ketika layar login ditampilkan sehingga semuanya sudah berjalan dan sudah berjalan
DeeJayh
Tidak terlalu membantu tapi mungkin sedikit menghibur - Saya berjuang dengan ini selama sekitar satu tahun sebelum menyerah (GDM) ... Saya memang setuju dengan apa yang saya pikir adalah cara "mungkin" bekerja: dua unit systemd pengguna, satu untuk login x-server virtual (pikirkan kios tetapi tidak ditampilkan), kemudian pemicu untuk mematikannya saat pengguna yang sebenarnya log on. Pada akhirnya untuk use case saya tidak sepadan tapi mungkin itu membantu Anda. Semua memuji ACME!
Tandai
Jika saya tidak salah, sinergi membutuhkan server X, jadi itu tidak dapat berfungsi tanpa pengguna masuk
Ziazis
Hanya tikaman liar di kegelapan, tetapi apakah Anda sudah mencoba menambahkannya .xinitrc?
anonymous2

Jawaban:

6

Untuk 16.04.2 buat file berikut (tidak ada)

/etc/lightdm/lightdm.conf

dengan isinya:

[Seat:*]
autologin-user=

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

Ikuti panduan wiki ubuntu ini untuk informasi lebih lanjut.


EDIT:

Dari man synergyc:

MULAI OTOMATIS ...

opsi tidak boleh menyertakan -fatau --no-daemon. Penting untuk memastikan tidak ada salinan sinergi lama yang berjalan sehingga tidak dapat mengganggu yang baru.

jringoot
sumber
2
Itu benar-benar bagus! Baik untuk diketahui, menambahkannya saja /etc/lightdm/lightdm.confsudah cukup untuk membuatnya bekerja dengan lengkap. Mungkin menambahkan apa yang harus dia tambahkan ke jawaban alih-alih hanya menautkan tautan ubuntu.
Ziazis
1
Spa jika Anda memiliki login otomatis, cukup tambahkan sinergi ke aplikasi startup Anda.
Ziazis
2
Cukup yakin ini berfungsi pada Ubuntu versi yang lebih lama, tetapi tidak pada saya. Saya membuat /etc/lightdm/lightdm.conf karena tidak ada dan meletakkan di dua baris di atas (tentu saja mengubahnya untuk menggunakan informasi saya sendiri) Saya sekarang memiliki koneksi sinergi ketika layar dimuat, namun sekarang saya tidak lagi dapatkan layar login. Itu hanya layar kosong dengan kursor X. $ sudo find / -name lightdm.confmemberi /etc/init/lightdm.confdan /etc/lightdm/lightdm.confdengan yang terakhir menjadi yang saya buat secara manual dengan dua-liner di dalamnya. Menghapus lightdm.conf yang saya buat mengembalikannya kembali ke urutan yang berfungsi.
DeeJayh
1
Saya dapat mengonfirmasi bahwa, pendekatan ini berfungsi pada 16.04.2!
pa4080
1
@SpasSpasov Saya tahu saya sangat bersemangat, saya mengubah jawaban untuk mencerminkan spesifikasi kami, menunggu peer review.
DeeJayh
1

Pergilah ke startup Anda .. untuk pemula seperti saya melakukannya dengan cara ini:

  • "Cari komputer Anda" ketik mulai, klik Aplikasi Startup
  • klik Tambah

    • Nama: Sinergi
    • Perintah: browse jika Anda suka tetapi / usr / bin / sinergi

    hanya itu, JANGAN TAMBAHKAN "c", tidak ada yang sampai akhir sinergi.

Sekarang saya juga menjalankan skrip karena saya terlalu malas untuk menghapusnya..jadi keduanya ada.

[Seat:*]
autologin-user=

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

sekarang untuk menemukan port yang menarik, ini bukan port default, jadi jangan ketik ini di terminal

netstat  -atn

sekarang bagaimana saya menemukan itu mencari ip server Anda ... Saya tahu ip server SYNERGY saya jadi tepat di seberang itu adalah ip klien saya dan nomor port.

leebrendalee
sumber