![从 ssh 登录到“前端 GUI”(与 Synergy 一起)](https://linux22.com/image/863021/%E4%BB%8E%20ssh%20%E7%99%BB%E5%BD%95%E5%88%B0%E2%80%9C%E5%89%8D%E7%AB%AF%20GUI%E2%80%9D%EF%BC%88%E4%B8%8E%20Synergy%20%E4%B8%80%E8%B5%B7%EF%BC%89.png)
因此,我的办公桌上有 3 台 PC,全部运行ubuntu 14.04 64bit
。并且全部运行 的最新版本Synergy
,这样我仅使用一个键盘和一个鼠标即可控制 3 台 PC 和 4 台显示器。效果很好!但是,有一个问题。
每次我登录(解锁)时,我都必须登录 3 次。每次我锁定计算机时,我都必须将其锁定 3 次。(好吧,我必须锁定并分别登录到 3 台电脑中的每一台)。
到目前为止,synergy
他们的代码中还没有针对此问题的系统,但我在想也许我可以使用 ssh 脚本来解决这个问题?有人知道我该怎么做吗?这可能吗?
编辑:我在下面的评论中得到了一个提示,并尝试了一些方法(请参阅我自己的答案,至于我到目前为止尝试过的方法),这个问题仍然没有解决,所以请阅读下面我自己的答案,看看你是否可以帮助我找出为什么这不起作用,或者可能想出一个完全不同的解决方案。
答案1
我还没有完成这项工作,但我想添加我已尝试过的内容以及迄今为止失败的原因,以防这会让其他人看到我做错的事情。
我创建了两个这样的 bash 脚本文件:
1)/sbin/my_loginscript.sh
(用于“登录”,并打开两台电脑)
#!/bin/bash
#
# Script to loging to my other computers when I login, save some time
#
echo "UNLocking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
echo "Now get some back to work"
2)/sbin/my_logoutscript.sh
(用于“注销”并关闭两台计算机)
#!/bin/bash
#
# Script to loging to my other computers when I login, save some time
#
echo "Locking laptop and desktop"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
ssh -X [email protected] "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
echo "Now get some rest"
这两个脚本都运行得相当好,当我直接运行它们时,另外两台台式计算机就会“打开和关闭”,我可以用synergy
它们来控制它们,这本身比手动登录另外两台计算机要快得多。
现在我尝试实现自动化,但这就是我遇到的问题。
当我登录计算机时(必须注销才能正常工作)
我创建了一个新文件“/etc/xdg/autostart/my_script.desktop”
它看起来像这样:
[Desktop Entry]
Type=Application
Name=global login
Exec=sudo /sbin/my_loginscript.sh
Icon=system-run
X-GNOME-Autostart-enabled=true
这确实有效。当我登录时,另外两个屏幕就像我希望的那样解锁了。
待办事项:如何在退出时关闭它?
而且,我几乎从不从我的电脑上注销,我只LOCK
注销它UNLOCK
,所以这才是我真正想要修复的问题,这就是我尝试过的方法。
我创建了一个名为“/etc/pm/sleep.d/99_resume.sh”的新文件
它看起来像这样:
#!/bin/bash
case "$1" in
thaw|resume)
/sbin/my_loginscript.sh 2> /var/log/wakeup.log
;;
suspend|hibernate)
/sbin/my_logoutscript.sh 2> /var/log/wakeup.log
;;
esac
但这似乎根本不起作用,我很难对其进行故障排除。如果有人能提供任何提示或建议,那就太好了。
编辑:根据下面 C0rp 的评论,我编辑了他的脚本,可以找到(已编辑)这里:
基本上,在您克隆或以其他方式创建文件后event_catcher.sh
,首先复制我的两个文件 my_logoutscript.sh and
my_logoutscript.sh as described earlier, to the
/sbin folder. Then start the daemon by running this
./event_catcher.sh start`。
下次您点击时,Ctrl Alt L
您的计算机将被锁定,并且您的其他电脑也将被锁定。
附言:我假设您已ssh-copy-id
在那些无需密码的电脑上启用登录。
所以,我考虑这个问题解决了现在,但我会等 c0rp 一会儿,看看他是否愿意创建一个非常快速的答案(而不是只有评论),如果他愿意,我会给他信用。再次感谢 c0rp!