![在登录 Ubuntu 16.04.2 LTS 之前启动 Synergy(或任何应用程序)](https://linux22.com/image/1147771/%E5%9C%A8%E7%99%BB%E5%BD%95%20Ubuntu%2016.04.2%20LTS%20%E4%B9%8B%E5%89%8D%E5%90%AF%E5%8A%A8%20Synergy%EF%BC%88%E6%88%96%E4%BB%BB%E4%BD%95%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%89.png)
使用Ubuntu 16.04.2(Xenial)在英特尔 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`
然后我就可以利用该程序来实现它的目的。但是,我希望这能自动完成前登录以便我能够利用它的用途从登录屏幕。(Synergy 允许您使用一套键盘和鼠标操作多台计算机,几乎就像虚拟 KVM 一样,但您无需点击开关,只需将鼠标直接滚动到下一个屏幕上,就像它们都连接到一个显卡一样)
我尝试的第一件事是rc.本地:
#!/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
为了16.04.2创建以下文件(不存在)
/etc/lightdm/lightdm.conf
内容如下:
[Seat:*]
autologin-user=
[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --name <hostname> 192.168.x.x
关注此Ubuntu 维基指南了解更多信息。
编辑:
自动启动...
选项不得包含
-f
或--no-daemon
。务必确保没有运行 synergy 的旧副本,这样它们就不会干扰新副本。
答案2
进入你的创业公司..对于像我这样的新手可以这样做:
- “搜索您的计算机”输入开始,单击启动应用程序
点击添加
- 名称: Synergy
- 命令:如果愿意,可以浏览一下,但它是 /usr/bin/synergy
就是这样,不要添加任何“c”,协同作用的末尾没有任何内容。
现在我也在运行该脚本,因为我懒得删除它......所以两者都在那里。
[Seat:*]
autologin-user=
[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --MediaServer 192.168.2.253:port
现在找到有趣的端口,它不是默认端口,因此在终端中输入此类型
netstat -atn
现在我发现它的方法是查找你的服务器 ip...我知道我的 SYNERGY 服务器 ip,所以它对面就是我的客户端 ip 和端口号。