通过shell脚本执行COBOL程序时如何知道我的工号

通过shell脚本执行COBOL程序时如何知道我的工号

通过shell脚本执行COBOL程序时如何知道我的作业号?

答案1

你能多解释一下你在做什么吗?有几个与您的程序相关的“数字”。

笔记:在我的示例中,美元符号 ( $) 表示命令提示符,并不意味着作为命令的一部分进行键入。

  1. 进程号

    当程序在 Unix 中运行时,它会被分配一个进程 ID。假设我有这个程序sleep,我运行它 100 秒。

    $ sleep 10000
    

    然后我可以使用命令找出它的进程 ID ps。进程 ID 为9263,例如:

    $ ps -eaf|grep sleep
    saml      9263  5736  0 05:48 pts/1    00:00:00 sleep 10000
    
  2. 后台作业

    当程序进入后台时,它可以继续运行,而无需直接连接到执行它的 shell。

    $ sleep 10000 &
    [1] 9370
    

    这里我运行程序sleep10000 秒。末尾的与号 ( &) 告诉 shell 将其设置为后台。当作业进入后台时,它们会重新分配一个作业#。在本例中,它被分配了作业#1。这9370是进程 ID。

    我们可以使用以下命令找出正在运行的作业jobs

    $ jobs
    [1]+  Running                 sleep 10000 &
    

    我们可以使用 job # 来处理这个进程,要么杀死它,要么将它带回前台。

    $ kill %1
    
    $ fg
    -or-
    $ fg %1
    
  3. at 和批处理命令

    在职位 # 容量中还有其他地方会出现“数字”。使用命令排队atbatch分配编号的计划任务。

    $ at -f mycrontest.sh  10pm tomorrow
    job 14 at Sun Jul  8 22:00:00 2007
    
  4. 计算集群技术

    更进一步,如果您的站点正在使用集群技术,例如网格调度器/网格引擎,斯鲁姆, 或者其他的,这些系统也为每个单独的任务分配了作业#。

答案2

#!/bin/bash

cobol_program &
echo "The COBOL program is running in the background with PID: $!"

请参阅“特殊参数”下的man页面bash

相关内容