|
> ちなみに、マシンはSun, OSはSolaris 2.6, WWWはNetscape Enterpriseです。 server 側の ftpd は Solaris 付属の ftpd ですか? Solaris の ftpd のファイルリスト表示って癖があったように思います。 Fetch という Mac の ftp クライアントでもファイル一覧は まともに表示されなかったことがありました。 これは、日本語版の Fetch なら対応しているんですが。 LIST か NLIST か詳しいことは忘れましたが、その表示が変わっていて 少なくとも古い Solaris の一部にはそういう癖があるので、別の ftpd 入れて見て試されては? NcFTPd とか UW_ftpd とか。 > SolarisのAwkでは動きませんでした、、、、 今度試してみます。 |
|
手抜きして、表示時に TAB を変換することにしてみました。 s|^(\t+)|' ' x length($1)|e; > 「ブラウザから ftp://(username):(password)@(server)/(directory) と > 入力すると、何が表示されますか?」というので、やってみるとアクセス > 権表示(rwxr--r--)しか表示されないのです。 rosegarden さんのおっしゃるとおり ftpd の問題なんでしょうが、 考えられるのは ・NLST だとファイル一覧がうまく取れないのかもしれない。 ・inetd が LANG=ja で実行されているため、inetd から呼ばれる ftpd も LANG=ja になり、日付が日本語になってしまう (11月14日など) てなところでしょうか。 で、他の ftp サーバを相手に試してみるとか、その ftp サーバに ftp -d で anonymous login して、プロトコルを見てみる (うまく いく ftp サーバとプロトコルの内容を比較する) などなど。 ちなみに ftp のファイル一覧の形式は、RFC で規定されていません。 一般的には ls -l の表示形式であることが多いですが、ls -l の 形式にすべしとはどこにも書いてありません。 > 例えば、windowの一部が画面の外側に出ている状態で、 > そこからwindowを現在ある位置から移動したとき、 > EXPOSEイベントがたくさん飛んで来るようで、 うーん、状況がよくわからんです。 http://X68000.startshop.co.jp/~68user/xprogram/xlib-3.html のように、ウィンドウ内に子孫ウィンドウを作ってますか? 子孫ウィンドウで Expose イベントに対応していないため、 上位のウィンドウにイベントが上昇伝播していて、その 結果複数のイベントが飛んできていませんか? もしそうなら、子孫ウィンドウでも XSelectInput して、 イベントが飛んできたら、どこ宛 (親ウィンドウ or 子 ウィンドウ) のイベントかどうかを判定し、適切な ウィンドウを再描画すればよいです。どのウィンドウ宛かは event.window でわかります。 1つのウィンドウでも発生するなら、 Expose が飛んできたとき、XCheckTypedEvent で さらに別の Expose イベントが飛んできていないか 調べる。 という方法があります。 case Expose: while (1){ if ( ! XCheckWindowEvent(display, window, ExposureMask, &event) ){ break; } てな感じ。ただし、根本的な解決方法かどうかはわかりません。 |
|
昨日間違って /var/adm のfileと subdirectoryをすべて削除してしました。、、、、、それが何なのか分からず、後でほかのUnixからコピーすればいいと思って昨日そのままShutDownしてしまったのですが、今朝起ち上げる時にcannot create car/adm/utmp or utmx. Failed to write of untmx entryというエラーが出て起ち上げられません。Ultra5+Solaris1.1.2なのですが、CDRomからそのDirectoryだけInstallする方法はありますか? |
|
Solaris 2.5.1 以降のことしか分からないんですが、 > 昨日間違って /var/adm のfileと subdirectoryをすべて削除してしました。 そこにあるのはログファイルの類だけです。sulog とか loginlog とか messages とかです。ログファイルが決定的な意味を持たないのなら問題ないです。 どっちにしても、CD-ROM にあったとしても元には戻りません。 utmp とか utmpx とかはログインとかの記録を保持するファイルです。当然 boot した時間や shutdown した時間も記録するので、それで文句を言うのでしょう。 私はこれを更新する際には実にアバウトに # cat utmp > utmp # cat utmpx > utmpx とかで済ませています(環境は Solaris 2.5.1 ですが)。だから空のファイルが あれば問題ないかと思います。空のファイルを作っておけば良いだけなので、 スイッチをいれた直後に L1+a で ROM モニタモードに移行してから、 boot -s して、/var をマウントして touch コマンドあたりで空のファイルを 作れば良いかと思います。あるいは、起動時に utmp がないと文句を言われて 止まった時に CTRL-C とか打ち込んでもブートの続きが始まるかも知れません。 CD-ROM にこだわるのなら、やはりスイッチいれた直後に L1+a で ROM モニタ モードに移行してから、OK プロンプトに boot cdrom すれば CD-ROM から たちあがあります。Solaris 1.1.2 は知らないのですが、2.5.1 以降だと Openwin が使えて、cmdtool なんかも好きなだけ使えます。で、適当な ところに手動で /var をマウントしてからコピーすれば良いかと思います。 参考までに Solaris 7 のインストール CD-ROM の /var は次のように なっています。tar でコピーするとか、 手動で同じもの作っても問題ないんじゃないでしょうか? # ls -alRF /tmp/root/var/adm total 8 drwxrwxr-x 4 root sys 2048 Jul 31 1999 ./ drwxr-xr-x 16 root sys 2048 Jul 31 1999 ../ -rw------- 1 kmem kmem 0 Jul 31 1999 aculog drwxrwxr-x 2 tty tty 2048 Jul 31 1999 log/ drwxrwxr-x 2 tty tty 2048 Jul 31 1999 passwd/ -rw-rw-rw- 1 operator kmem 0 Jul 31 1999 spellhist -rw-r--r-- 1 root kmem 0 Jul 31 1999 utmp -rw-r--r-- 1 root kmem 0 Jul 31 1999 utmpx -rw-rw-r-- 1 tty tty 0 Jul 31 1999 wtmp -rw-rw-r-- 1 tty tty 0 Jul 31 1999 wtmpx ./log: total 4 drwxrwxr-x 2 tty tty 2048 Jul 31 1999 ./ drwxrwxr-x 4 root sys 2048 Jul 31 1999 ../ ./passwd: total 4 drwxrwxr-x 2 tty tty 2048 Jul 31 1999 ./ drwxrwxr-x 4 root sys 2048 Jul 31 1999 ../ # 長くってすみません |
|
rosegadenさん 回答どうもありがとうございます。 おっしゃる通り、空のファイルを作っただけで起ち上げに成功しました! あーよかった。 L1というのはKeybordについているのですか? その他色々わからないTerminologyがあるのですが、その辺は またゆっくり調べてみます。 ご指導どうもありがとうございました! |
|
はじめまして 実は今Linuxでデーモンプログラムの勉強をしてるのですけど、 よくわかりません。 デーモンプログラムってループして実行時に&でバックグラウンド でいいんでしょうか? HP探しててもサンプルソースが見つからないし‥ よろしかったら教えて下さい。お願いします。 |