在登录Ubuntu 16.04.2 LTS之前启动Synergy(或任何应用程序)

Modified on: Sat, 23 Jun 2018 13:20:23 +0800

Intel x64上使用Ubuntu 16.04.2(Xenial):{两个处理器和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`

然后我可以利用该程序达到目的。但是,我希望在登录之前自动完成此操作,以便我可以在登录屏幕中使用的目的。 (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

所以它绝对是可执行的,但在重新启动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`

然而它没有做到它应该做的事情,甚至统一对话被称为说出错了,这只会在执行时发生,所以我可以安全地假设它就是那样。

我最安全的假设是程序运行得很好,问题是rc.local在x会话启动之前运行,因此键盘和鼠标的任何挂钩都不会建立,这也可能只在开始执行synergyc,并且在此之后不再尝试。

我尝试的第二件事是“启动应用程序”,它可以工作,但直到登录后,这不是我们想要的东西。

如果我的假设是正确的:

在x服务器启动后,但在任何用户必须登录之前,有什么方法可以调用进程的执行。

如果我的假设不正确:

最佳答案

对于16.04.2,请创建以下文件(它不存在)

/etc/lightdm/lightdm.conf

内容:

[Seat:*] autologin-user= [SeatDefaults] greeter-setup-script=/usr/bin/synergyc --name <hostname> 192.168.x.x

请按照ubuntu wiki指南了解详情。


修改强>

来自man synergyc

  

自动启动...

  
  

选项不得包含-f--no-daemon。这很重要
  确定没有旧的协同作用副本正在运行,所以他们不能干涉
  新的。


相关问答

添加新评论