重新启动计算机

2024-10-03 02:46:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个ROS服务,当使用rosservice调用它时,它将重新启动计算机。你知道吗

以下是我的回调代码:

def reboot_callback(self, cmd):
    """
    Callback to reboot
    """

    res = TriggerResponse()
    res.success = True
    res.message = "Rebooting"
    os.system('reboot')
    return res

但是,当我运行rosservice call /reboot(或者不管服务叫什么名字)时,我会得到一个Permission Denied错误,因为ROS和Python不是以sudo运行的,它需要管理员权限才能重新启动计算机。你知道吗


Tags: to代码selfcmddef计算机servicecallback
1条回答
网友
1楼 · 发布于 2024-10-03 02:46:35

要拥有从ROS节点重新启动计算机的正确权限,roscorerosrun需要从根用户运行。你知道吗

我是这样做的:

  • 使用sudo su

  • 获取ROS安装文件和catkin-ws文件(source /opt/ros/kinetick/setup.bash && source catkin_ws/devel/setup.bash

  • 运行roscorerosrun(或者roslaunch,如果您有一个启动文件),现在就可以调用您的服务了。

另一种方法是使用tmux。你知道吗

  • 在要重新启动的计算机上运行tmux

  • ssh到机器并运行tmux attach

  • 运行任何需要启动的程序,尝试用ros重新启动机器,它应该可以工作

相关问题 更多 >