设置网格引擎

设置网格引擎

当我在设置网格引擎时...我遇到了一个问题。当我使用以下命令检查正在运行的守护进程时...我得到的结果是(如所列):

ps aux | grep sge


sgeadmin  1069  0.0  0.0  68896  3372 ?        Sl   10:04   0:00 /usr/lib/gridengine/sge_execd
sayantan  9545  0.0  0.0  21292   968 pts/5    S+   10:56   0:00 grep --color=auto sge

现在,如果我登录到 root 并使用以下命令:(即在 sudo su 之后)

sge_qmaster

这不会产生任何输出。

但是当我尝试启动 exec 时:

sge_execd

我收到的错误是:

error: communication error for "localhost/execd/1" running on port 6445: "can't bind socket"
error: commlib error: can't bind socket (no additional information available)

我现在已经陷入困境很长时间了。请求帮助。

答案1

您收到的错误表明sge_execdsge_execd进程已在运行并且已分配端口6445,因此第二个实例无法再次使用该端口。

由于sge_execdsge_qmaster是服务,因此不应直接在命令行上启动它们,而应通过软件包附带的 init-scripts 启动它们。此外,init-scripts 将获取一些与 SGE 相关的环境变量,以使服务正常工作。
从 Ubuntu 16.04 开始,systemd通常用于管理启动脚本。对于gridengine脚本,这种systemd方式似乎不起作用。您应该启用 SGE 部分在启动时自动启动,如下所示。

$ sudo update-rc.d gridengine-master enable
$ sudo update-rc.d gridengine-exec enable

要立即正确启动服务,您可以先停止实例,然后通过 启动它们systemd

$ sudo killall sge_qmaster
$ sudo killall sge_execd

然后检查进程是否消失。

$ sudo ps aux | grep sge | grep -v grep

之后尝试启动服务。

$ sudo systemctl restart gridengine-master.service
$ sudo systemctl restart gridengine-exec.service

相关内容