68user's page 掲示板

Prev< No. 3048〜3061> Next  [最新発言に戻る] [過去ログ一覧]
No. 3048 # HITO 2003/01/20 (月) 17:08:11
シェル実行中にCtrl+Cして、強制終了させたときに、
バックグラウンドで動いていたシェルも終了させたいんですが、
イマイチうまく動きません。ちなみにKシェルです。

back_pid=`job -l awk '{print $3}'`でPIDを取得して
kill -9 $back_pidで強制終了
というのを、trap '〜' INTの中でやろうと思ったんですが、
trapの''の中にawkの''があるせいで、エラーになってしまいます。

でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、
未設定の値でkillが走ってしまうので、あまり良くないですが・・・

何か良い方法はありませんか?

No. 3049 # 68user 2003/01/21 (火) 10:51:01
>>3045 has
> Win2k上でnslookupがうまくいってないようなので、ついでにそちらも
> 監視してみたところ、Non-Existent Domainが返されていました。
謎ですねぇ。こっちを解決したら Linux の問題も解決したりして。

>>3047 KEI
Windows はわかりません。

>>3048 HITO
> trapの''の中にawkの''があるせいで、エラーになってしまいます。
クォートの規則がわからなかったら、
        siginthandler(){
                  back_pid=....
                  kill ...
        }
        trap siginthandler INT
と別関数にしましょう。

> でも、これだと、バックグラウンドで動いてるプロセスが無い場合も、
> 未設定の値でkillが走ってしまうので、あまり良くないですが・・・
        if [ "$back_pid" != "" ]; then
                kill ...
        fi
てな感じで。

No. 3050 # さとし 2003/01/21 (火) 15:18:01
はじめまして、さとしです。
突然で申し訳ないのですが教えて欲しい事があります
shell内で、あたかも関数の様に処理を作成して、同一shell内の呼び出し元に返り値を返すことって出来ますか?

No. 3051 # 68user 2003/01/21 (火) 16:44:30
>>3050 さとし
shell って言ってもいくつか種類があるんですけんども。どのシェルを使って
いるのか ちゃんと書きましょう。

sh 系なら
        func(){
                echo "$@"
                return 8
        }
        func 1 2 3 4 hoge fuga
        echo $?
とか。

No. 3052 # しん 2003/01/21 (火) 16:53:45
はじめまして。現在サイトを参考にさせて頂き、HTTPクライアントを作成しております。ベーシック認証において、perlを使いID及びPasswordを相手側サーバに送信する方法を教えて頂けないでしょうか。お忙しいところ申し訳ございませんが宜しくご教授願います。

No. 3053 # 68user 2003/01/21 (火) 17:08:16
>>3052 しん
> ベーシック認証において、perlを使いID及びPasswordを相手側サーバに送信する方法

>>2612 68user
をどうぞ。

No. 3054 # 高橋 [E-mail] 2003/01/23 (木) 01:49:24
はじめまして、
ちょっとだけ聞きたいことがあります。
crontabにシェルを登録しました。
内容は
* * * * * (./Home/Comp/.profile; /Home/Comp/glance_log.sh)
です。
マシンはHP 11.0を使っております。
そしてシェルの内容は
===glance_log.sh===
nohup glance -adviser_only -iterations 1 -syntax ./temp -j 30 >> glance_log.dat &
で,
=== ./temp====
print gbl_stattime, " CPU=", GBL_CPU_TOTAL_UTIL, " DISK I/O=", GBL_DISK_UTIL_PEAK, " MEM UTIL=", GBL_MEM_UTIL
です。
普通のprompt上で実行すると
glance_log.datにローグが積みます。
===glance_log.dat===
01:29:49 CPU= 11.4 DISK I/O= 19.5 MEM UTIL= 81.0
01:29:50 CPU= 17.6 DISK I/O= 9.5 MEM UTIL= 81.1

ところがcrontabに登録して実行させると
glance_log.datには何もでしませんでした。
もちろんのことにechoを使って実行させるとechoだけはローグができますね。
やはりttyの設定が悪いからではないかなぁとおもうんですが、どうやってcrontabに登録したらいいかわかりません。

助けてください。
ほんとに困ります。

No. 3055 # えい 2003/01/23 (木) 09:12:31
はじめまして。いつも参考にさせて頂いてます。

perlで書いたサーバプログラムをinetd経由で起動しているのですが、
接続してきた相手の情報を取得する方法がわからず困っています。
どのように取得するのが一般的な方法なのでしょうか。

No. 3056 # 68user 2003/01/23 (木) 12:48:21
>>3054 高橋
> (./Home/Comp/.profile; /Home/Comp/glance_log.sh)
. と / の間に空白がないので .profile の読み込みに失敗しているのでは?
それを直してもダメなら、
      (. /Home/Comp/.profile; /bin/printenv)
などで環境変数を確認しましょう。

> やはりttyの設定が悪いからではないかなぁとおもうんですが
glance というコマンドは知りませんが、キーボードからの
入力を受け付けるようなプログラムであれば tty がらみ
かもしれません。でも、そうでないなら tty は関係ないでしょう。


>>3055 えい
> perlで書いたサーバプログラムをinetd経由で起動しているのですが、
> 接続してきた相手の情報を取得する方法がわからず困っています。
何も試さずに書きますが、標準入力であるところのファイル
デスクリプタ 0 がソケットにつながっているわけなので、
getpeername(STDIN) でいけるんじゃないでしょうか。

No. 3057 # 山田 2003/01/23 (木) 14:14:56
こんにちは、いつも参考にさせてもらっています。
UNIXで2ギガを超えるファイルの圧縮を行なう方法をご存知の方がいらっしゃれば教えて下さい。
圧縮率に関してはそれほど気にしないので、compressでもOKです。
よろしくお願い致します。

No. 3058 # 68user 2003/01/23 (木) 17:01:10
>>3057 山田
> UNIXで2ギガを超えるファイルの圧縮を行なう方法
OS の制限なら無理でしょう。tar の制限なら制限のない tar を使うと
いけるかもしれません。

結局のところ、「UNIX」と言われてもいろいろな UNIX like OS があるので
わかりません、ってことで。

No. 3059 # 山田 2003/01/23 (木) 17:04:19
ありがとうございます。
zipに制限があるのは確認したのですが、compressは確認していません。
tarで試してみます。
ちなみにOSは何をみれば分かりますか?

No. 3060 # 山岸 信一 [E-mail] 2003/01/23 (木) 18:56:42
始めまして。
私は実際のサーバなど全くいじったことがなく、すべては読み物での知識です。NTTの.COM.MASTER *はパスして現在**を目指している60才を過ぎた元通信分野に籍を置いたものです。交換機などと異なりcomputerの領域の知識が無いので少し苦労をしています。
それで、
きわめて基本的なことですが、permissionにおける「実行」というのは具体的にどういう事象なのでしょうか? R/Wについては解るのですがX(実行)というのはどう言うことなのか解りません。
教えてください。

No. 3061 # has 2003/01/24 (金) 01:49:37
>>3049 68user
tcpdumpを使おうとmanを見たらそれだけで圧倒されてしまい、
etherealを入れようとしたらrpmの依存関係が解決できずに
そのままはまってしまいました。なんてこった(*_*)
もうちっと腰を据えて勉強するとします…。

それはそうとこの板、回答者がすっかり68user一人になってしまったので、
たまには私も口を出せそうな話題にはお邪魔しようかと思います。
というわけで早速。

>>3059 山田
OSの種類については
% uname -s
を実行するとわかります。
SunOSとかHP-UXとかFreeBSDとかlinuxとか。

>>3060 山岸 信一
コンピュータに関する理解具合が把握できなかったので回答しづらいですが、
http://www.kent-web.com/pubc/axsken/
というページがありました。
こういう説明で参考になるでしょうか?

Prev< No. 3048〜3061> Next  [最新発言に戻る] [過去ログ一覧]