AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 2927
Accepted
robsoft
robsoft
Asked: 2010-08-24 01:24:59 +0800 CST2010-08-24 01:24:59 +0800 CST 2010-08-24 01:24:59 +0800 CST

从 Windows 机器远程重启 Ubuntu 的最佳方法

  • 772

背景:我希望将一系列 Ubuntu 机器放到零售点,它们被用作愚蠢的信息亭,在大型 LCD 面板电视屏幕上显示一系列幻灯片。安装后,它们不会连接键盘或鼠标,但会在本地网络上拥有固定的 IP。一切都配置为自动启动,没有自动更新,没有省电等 - 我认为除了一件事我们非常好。如果出现问题,我需要零售人员能够重新启动盒子。

我们正在运行 VNC(现在我们已经关闭了桌面增强功能!),以便我们可以在需要时远程进入机器,但这不是我们允许零售员工做的事情。这些机器将在物理上“不碍事”(可能在天花板空间),因此电源按钮不容易接近!.

我想有一些方法可以让零售人员从他们的一个 Windows 终端的桌面重新启动 Ubuntu 机器。我真的不想给他们某种原始终端访问权限(命令行会吓到他们!)而且我不希望他们使用 VNC(如上所述)。理想情况下,Windows 桌面上会有一个图标,他们双击它,回复一个简单的“你确定吗?” 提示,然后 Ubuntu 框被告知重新启动。Windows 方面不会有问题,我们可以使用 Delphi、Python 和 Qt4 编写一些东西,无论如何——这是我坚持的 Ubuntu 方面。

在视线之外,我可以让一个 Windows 程序通过网络打开一个终端并告诉 Ubuntu 重新启动吗?这是 SSH 可以用来做什么(我从来没有设置过那种东西)。Windows 编程方面并不是真正的问题,只是我是一个完全的 Ubuntu 菜鸟,从平台的角度来看不知道从哪里开始。

我们考虑的另一件事是让机器每天在设定的时间自动重启(显然是在商店营业时间之外!)。对我来说,这似乎有点不必要(尽管每周/每月强制重启一次可能是值得的)。

有什么想法或建议吗?能够通过网络按需重启盒子是我的首要要求。

remote-access
  • 3 3 个回答
  • 17718 Views

3 个回答

  • Voted
  1. Best Answer
    Oli
    2010-08-24T02:53:26+08:002010-08-24T02:53:26+08:00

    在视线之外,我可以让一个 Windows 程序通过网络打开一个终端并告诉 Ubuntu 重新启动吗?这就是 SSH 可以用于[?]

    是的。我就是这样做的。第一步是您需要在 Windows 计算机上安装 Putty。这允许您通过 SSH 登录。但现在不要担心。让我们倒着做,从 Ubuntu 机器开始。

    我会在 Ubuntu 机器上编写一个脚本来重新启动。如果您可以 ssh 进入,您可能不需要完全重新启动。您可能会争辩说您“也可以”,但这通常意味着重新启动所需的时间比需要的时间长四到五倍;这只是浪费时间。

    您应该能够只重新启动 GDM ( sudo restart gdm) 就可以逃脱,因此我将编写一个交互式 Python 脚本,提示用户确保他们确定要重新启动 GDM,然后重新启动它。之后,它会等待五秒钟,然后询问他们是否正常工作。如果没有,请完全重新启动 ( sudo reboot)。

    编辑:您也有可能只需重新启动这些屏幕显示的应用程序,甚至无需重新启动 GDM。我不知道您期望跌倒,但假设所有三个并让用户选择依次重新启动每个,从应用程序开始,然后是 gdm,然后是机器。

    你可以使用 curses 让它看起来更漂亮。

    接下来,您需要确保您的 ubuntu 用户可以执行这些根级命令。运行sudoedit /etc/sudoers并添加如下内容:

    Cmnd_Alias REBOOT = /sbin/reboot
    Cmnd_Alias RESTART = /sbin/restart
    
    useraccount   ALL=REBOOT
    useraccount   ALL=RESTART
    

    Subbinguseraccount将运行此脚本的帐户的用户名。

    您现在应该可以通过 SSH 登录并测试脚本了。

    最后一个难题是将 SSH 连接到 Ubuntu 并自动运行脚本。您可以使用证书(它可能更安全),但在此示例中,我将只使用明文密码。

    putty.exe [email protected] -pw password -m commands.txt
    

    显然 sub out useraccount,1.2.3.4并且password具有真实值。commands.txt应该是 Windows 计算机上的文本文件,其中包含如下内容:

    python my_python_script.py
    

    注意:使用 be 登录时的路径,/home/useraccount/因此要么将 python 脚本放在那里,要么更改commands.txt.

    重要提示: Putty 将在其命令完成运行后立即关闭。这意味着您的 Python 脚本必须是交互式的(至少在退出之前询问“按任意键继续”),否则用户将看不到任何输出。这很简单。您提到了 Python,所以我假设您知道(或知道如何找出)如何执行简单提示。正如我之前所说,一个简单的 curses 界面看起来最专业。

    重要说明 2:有时机器/软件会出现故障,硬重启是唯一的选择。如果您是一个很难到达的空间中的计算机,那么确保您可以使用它们的电源当然值得考虑,这样您就可以在最后的手段中进行“硬开关”。确保您使用日志文件系统,这样如果员工经常使用它就不会搞砸,并警告员工如果他们不将其用作最后的手段,邪恶的马戏团人员会偷走他们的孩子,等等。没有什么比工作人员在打嗝时按下硬重置按钮更糟糕的了。

    • 3
  2. Javier Rivera
    2010-08-24T02:00:07+08:002010-08-24T02:00:07+08:00

    如果您可以在 windows 机器中配置 ssh,那应该很容易。这就是我现在要做的,从一个 ubuntu 服务器到另一个服务器执行一些远程命令

    ssh ip.number.0.28 -i /home/javier/.ssh/id_rsa_web -l javier "cd /home/javier/sincrotod;./sincroniza.py"
    

    -i 部分告诉 ssh 使用证书而不是使用密码登录。重启机器的命令行命令是reboot。您需要确保用于登录的用户有权关闭机器。

    • 1
  3. A Student at a University
    2010-08-24T02:58:10+08:002010-08-24T02:58:10+08:00

    http://web.archive.org/web/20100919000947/http://www.lockergnome.com/it/2005/03/11/running-a-program-on-a-remote-server-using-ssh/

    • 0

相关问题

  • 通过 SSH 禁用密码访问?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve