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


14

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会话开始之前运行,因此从未建立任何与键盘和鼠标的钩子,这也很可能仅在x的开始进行执行synergyc并在此之后不再尝试。

我尝试过的第二件事是“启动应用程序”,它可以工作,但是要等到登录后才能使用,这不是我们想要在此处进行的工作。

如果我的假设是正确的:

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

如果我的假设不正确:

救命


1
对于gdm可能需要/etc/gdm/Init/Default,对于Unity 可能需要向中添加脚本/etc/init/lightdm.conf
林茨温德'17

@Rinzwind lightdm.conf仍然为时过早,即使是在启动后的部分,使用同一命令从终端上正常运行也会产生协同错误。Ubuntu引发错误,指出协同作用意外停止,可能是因为它无法访问控制键盘和鼠标所需的钩子,需要在登录屏幕显示时立即发生,以便一切
都已

不是很有帮助,但也许有点安慰-在放弃(GDM)之前,我为此奋斗了大约一年...我确实确定了自己认为“可行”的工作方式:两个用户系统单元,一个用于虚拟的x服务器登录(想想自助服务亭,但未显示),然后是一个在实际用户登录时将其杀死的触发器。最后,对于我的用例来说,这是不值得的,但也许对您有所帮助。欢呼ACME!
马克

如果我没有记错的话,协同功能虽然需要X服务器,但如果没有用户登录,它就无法工作
Ziazis

只是在黑暗中疯狂的一击,但您是否尝试过添加.xinitrc
匿名

Answers:


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 Wiki指南以获取更多信息。


编辑:

来自man synergyc

自动启动...

选项不得包含-f--no-daemon。重要的是要确保没有运行旧版本的协同作用,以免干扰新版本。


2
真的很棒!很高兴知道,只需将其添加到其中/etc/lightdm/lightdm.conf就足以使其正常工作。也许添加他必须添加到答案中的内容,而不是仅链接ubuntu链接。
Ziazis '17

1
如果您具有自动登录功能,则可以在启动应用程序中添加协同作用。
Ziazis '17

2
可以肯定的是,这可以在较旧版本的Ubuntu上运行,但不适用于我的版本。我创建了/etc/lightdm/lightdm.conf,因为它不存在并放在上面的两行中(当然,将其更改为使用我自己的信息)我现在在屏幕加载时具有协同连接,但是现在不再获取登录屏幕。这只是一个带有X光标的空白屏幕。$ sudo find / -name lightdm.conf给出/etc/init/lightdm.conf/etc/lightdm/lightdm.conf与后者是我在它与两衬垫手动创建的。删除我创建的lightdm.conf,将其恢复为正常工作状态。
DeeJayh,2017年

1
我可以确认,这种方法适用于16.04.2!
pa4080

1
@SpasSpasov我知道我很兴奋,我更改了答案以反映我们的具体信息,等待同行评审。
DeeJayh

1

进入您的创业公司。对于像我这样的新手,请按照以下方式进行操作:

  • 在开始中“搜索您的计算机”中,单击“启动应用程序”
  • 点击添加

    • 名称:协同作用
    • 命令:浏览是否喜欢/ 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和端口号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.