シェルスクリプトを介してCOBOLプログラムを実行すると、私のタスク番号をどのように知ることができますか?
答え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
バックグラウンドタスク
プログラムがバックグラウンドに切り替えられると、実行中のシェルに直接接続することなく実行できます。
$ sleep 10000 & [1] 9370
sleep
ここでは、10000秒間プログラムを実行します。&
最後のアンパサンド()は、シェルに背景として設定するように指示します。ジョブがバックグラウンドに切り替わると、ジョブ番号が再割り当てされます。この場合、タスク#1が割り当てられます。9370
プロセスID。次のコマンドを使用して、どのジョブが実行されているかを確認できます
jobs
。$ jobs [1]+ Running sleep 10000 &
ジョブ番号を使用して、このプロセスを処理、終了、またはフォアグラウンドに戻すことができます。
$ kill %1 $ fg -or- $ fg %1
at およびバッチコマンド
タスク # 容量に「数値」が表示される別の場所があります。コマンドを使用して、番号付きのスケジュールされたジョブをキューに追加または
at
割り当てbatch
ます。$ at -f mycrontest.sh 10pm tomorrow job 14 at Sun Jul 8 22:00:00 2007
コンピューティングクラスタ技術
さらに一歩進み、サイトがクラスタリング技術を使用している場合グリッドスケジューラ/グリッドエンジン、スラムまたは他の人、これらのシステムはまた、個々のタスクにタスク#を割り当てます。
答え2
#!/bin/bash
cobol_program &
echo "The COBOL program is running in the background with PID: $!"
man
「特殊パラメータ」の下のページを参照してください。bash