- Community Home
- >
- HPE Community, Japan
- >
- HP-UX
- >
- System Management
- >
- 親.cshから子.cshを切り離す方法
カテゴリ
Company
Local Language
フォーラム
ディスカッションボード
フォーラム
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
ディスカッションボード
フォーラム
ディスカッションボード
ディスカッションボード
ディスカッションボード
フォーラム
ディスカッションボード
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
フォーラム
ブログ
- RSS フィードを購読する
- トピックを新着としてマーク
- トピックを既読としてマーク
- このトピックを現在のユーザーにフロートします
- ブックマーク
- 購読
- 印刷用ページ
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 03:18 PM
01-13-2007 03:18 PM
親.cshから子.cshを切り離す方法
親.cshから子.cshを呼び出し、親.cshが終了後も子.cshを実行後終了させたいのですが、子.cshの処理が終了してもプロンプトが戻ってきません。
戻る方法をお教え下さい。
<親.csh内、子.csh呼び出し方法>
nohup ~/hoge/子.csh &
<実行方法>
TeraTermから実行サーバにログインして手打ち
<状態>
親.csh終了後、プロンプトが戻ってくるが、子.csh内のコマンド(sleep&echoのみ)が正常終了してもプロンプトが戻ってこない("Ctrl+c"を押せば戻る)
<希望>
出来ればプロンプトを戻したい。
実環境ではcronに登録する予定なのですが、なぜプロセスが死んでもプロンプトが戻ってこないのか原因を知りたい。
以上、どうぞ宜しくお願い致します。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 04:30 PM
01-13-2007 04:30 PM
親.cshから子.cshを切り離す方法
親側で、どこか他のところで止まっているということは無いでしょうか?
"csh -x 親.csh"でトレースを取ってみることをお勧めします。
#実はプロンプトが表示されているが、直後に子.cshからのメッセージが表示されるため、見落としているなんてことは無いですよね。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 05:09 PM
01-13-2007 05:09 PM
親.cshから子.cshを切り離す方法
確かに、「子.cshの状態に関わらず、親.cshは処理を継続」し正常終了します。
ただ、行いたい要件としては、親は子をキックしたら子より早く終了してしまいます。
(必ず、親が正常終了した後に子を起動させたい為)
よって以下のテストshellを作成してテストした結果、子のプロセスが死んでもプロンプトが戻ってこないので、原因を知りたく思います。
以下にshellの中身と実行状態を記載しました。
(デバックモードにすると見辛かったので標準出力のみにしました)
<親shell>
$ cat test.csh
#! /bin/csh -f
echo "START:test.csh"
nohup /<絶対パス>/testSUB.csh &
echo "END :test.csh"
<子shell>
$ cat testSUB.csh
#! /bin/csh -f
sleep 10 #親より終了を遅くさせる
echo "START:testSUB.csh"
echo "END :testSUB.csh"
<処理実行>
$ ./test.csh
START:test.csh
9538
END :test.csh
$ START:testSUB.csh
END :testSUB.csh
# ここで'$'が戻ってこない
# プロセスNo.9538が消えていることは確認済
(現状"Ctrl+c"でプロンプトを戻している)
「$ START:testSUB.csh 」の箇所は、親が終了した時点で一度プロンプトが戻るが、子からのechoが表示された後は戻らないです。
また、子にsleepをかけず、親より早く終了すればプロンプトが戻ってくることは確認済。
プロンプトの戻し方、又は戻らない原因を知りたいです。
どうぞ宜しくお願い致します。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 05:34 PM
01-13-2007 05:34 PM
親.cshから子.cshを切り離す方法
> $ ./test.csh
> START:test.csh
> 9538
> END :test.csh
ここまでは test.csh の出力
> $ START:testSUB.csh
> END :testSUB.csh
'$' は login shell のプロンプト
その後のメッセージは testSUB.csh の出力
つまり login shell はプロンプトを書いて入力を待っている状態。そこに testSUB.csh がメッセージを
書いているだけ。
Ctrl-C でなくても retrun で次のプロンプトが表示されます。
また testSUB の出力をファイルに取れば普通にプロンプトが
表示されているのがわかります。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 05:39 PM
01-13-2007 05:39 PM
親.cshから子.cshを切り離す方法
プロンプト$を表示しているのはログインシェルであり、ログインシェルでフォアグラウンド実行した ./test.csh が終了した時点で、
プロンプトを表示していますね。
プロンプトが表示された後、孫プロセスtestSUB.csh の表示が始まりますが、端末が同じなので、プロンプトの後ろに表示されています。
でもログインシェルはもうやることがないから、それ以上プロンプトを表示することはしません。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
01-13-2007 05:52 PM
01-13-2007 05:52 PM
親.cshから子.cshを切り離す方法
ご返信ありがとうございました。
とっても良く判りました。
判ってみれば、何でこんな簡単な事に何時間も・・とも思ってしまいますが、本当に判らず困っていました。
どうも有り難うございます。