---
title: 运行和验证
description: "1. 使用PuTTY工具，以root用户登录主控主机。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengsge_02_0010.html
sourcePath: /source/zh/kunpenghpcs/hpcindapp/prtg-osc/kunpengsge_02_0010.html
indexId: 774cec10d4ea11d8d0db639a5231e3e6e09b99654f08214c27afe907c6cbda5965
---
# 运行和验证

#### 操作步骤

1. 使用PuTTY工具，以root用户登录主控主机。
2. 执行以下命令添加执行主机。

```
qconf -as armnode4
```


3. 执行以下命令查看默认主机组的名称。

```
qconf -shgrpl
```

```
@allhosts
```


4. 执行以下命令修改主机组信息，将执行主机添加到主机组中。

  a. qconf -mhgrp @allhosts
  b. 按“i”进入编辑模式，修改以下内容。

```
group_name @allhosts
hostlist armnode4
```


  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。
5. 执行以下命令切换到非test用户。

```
su - test
```


6. 执行以下命令在test用户下加载SGE环境变量。

```
source
/path/to/SGE_ROOT
/default/common/settings.sh
```


7. 添加SGE环境变量到test用户的“.bashrc”中从而永久生效。

```
echo "source
/path/to/SGE_ROOT
/default/common/settings.sh" >> /path/test/.bashrc
```


8. 执行以下命令创建一个样例执行脚本“run.sh”。

```
vi run.sh
```


  按“i”进入编辑模式，添加以下内容。

```
#!/bin/bash
#$ -S /bin/bash
nodeinfo=`hostname`
echo "This is the SGE test from $nodeinfo" >> sge-test.log
```


  按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。

9. 执行以下命令提交作业任务。

```
qsub -V -cwd -o stdout.txt -e stderr.txt run.sh
```


  命令参数说明如表1所示。 表1 qsub命令常用参数说明 参数 说明 -V 将当前shell中的环境变量输出到本次提交的任务中。 -cwd 在当前工作目录下运行程序。默认设置下，程序的运行目录是当前用户在其计算节点的家目录。 -o 将标准输出添加到指定文件尾部。默认输出文件名是$job_name.o$job_id。 -e 将标准错误输出添加到指定文件尾部。默认输出文件名是$job_name.e$job_id。 -q 指定投递的队列，若不指定，则会尝试寻找最小负荷且有权限的队列开始任务。 -S 指定运行run.sh中命令行的软件，默认是tcsh。推荐使用bash，设置该参数的值为/bin/bash即可，或者在run.sh文件首部添加一行#$ -S /bin/bash。若不设置为bash，则会在标准输出中给出警告信息：Warning: no access to tty (Bad file descriptor)。 -hold_jid 后接多个使用逗号分隔的job_id，表示只有在这些job运行完毕后，才开始运行此任务。 -N 设置任务名称。默认的job name为qsub的输入文件名。 -p 设置任务优先级。其参数值范围为 -1023~1024 ，该值越高，越优先运行。但是该参数设置为正数需要较高的权限，系统普通用户不能设置为正数。 -j y|n 设置是否将标准输出和标准错误输出流合并到 -o参数结果中。 -pe 设置并行化环境。

10. 任务提交后的管理如表2所示。
**表2 任务提交后的常用命令参数说明**

| 参数 | 说明 |
| --- | --- |
| qstat \-f | 查看当前用户在当前节点提交的所有任务，任务的状态有6种情况： qw，等待状态。刚提交任务的时候是该状态，一旦有计算资源了会马上运行； hqw，该任务依赖于其它正在运行的job，待前面的job执行完毕后再开始运行，qsub提交任务的时候使用\-hold\_jid参数则会是该状态； Eqw，投递任务出错； r，任务正在运行； s，被暂时挂起，往往是由于优先级更高的任务抢占了资源； dr，节点异常退出后，删除任务就会出现这个状态，只有节点重启后，任务才会消失。 |
| qstat jobID | 按照任务id查看。 |
| qstat \-u user | 按照用户查看。 |
| qdel jobID | 删除任务。 |
