■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 最新50

くだらねえ質問はここに書き込め!Ver.Linux 2

1 :名無しさん@お腹いっぱい。 :2000/11/23(木) 14:04
過去スレ
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=968404430&ls=100

ではどうぞ

199 :197 :2000/12/05(火) 20:23
>コマンド一覧は有ったんだけど、unixとwinサーバで違うのかい?

いちいち違ってたらサーバごとにメールクライアント変えなきゃならんだろ
それにサーバ同士の転送もできやしない


200 :196 :2000/12/05(火) 20:29
とりあえず、対話的にやって遅れたんだけど、
その一連のコマンドを、
telnet xxx.xxxx.xxx.xx 25 << !
>HELO hogehoge.co.jp
>MAIL FROM: hoge@sine
>RCPT TO: hage@kuso
>DATA
>sinesinesine
>.
>quit
>!
とヒアドキュンでやったらできないんだけど。

201 :名無しさん@お腹いっぱい。 :2000/12/05(火) 20:46
>>200
どうできない?
改行コードは大丈夫か?
あとちゃんとリターン見たほうがいいと思うがな

202 :名無しさん@お腹いっぱい。 :2000/12/05(火) 22:03
MUAをNetscapeMessengerからWanderlustに変更したいの
ですが、保存してあるメールの移行はどうすればでき
ますか?


203 :185 :2000/12/05(火) 23:18
189さんへ
ありがとうございます。試してみます。
191さんへ
すいません。/dev/hdb5が何を意味するのか知識不足でわからないのです。
ハードディスクを増設して、そちら(slave)にインストールしています。
etc/fstabをメンテナンスモードみたいなので立ち上げて編集しようと
奮闘中です。


204 :191 :2000/12/06(水) 01:57
>> 203
/dev/hdb5 というのは primary, slave の論理パーティションの
ひとつめ、ということです。そこを / として mount しようとして
kernel がこけているようです。



205 :191 :2000/12/06(水) 02:00
>> 200
> telnet xxx.xxxx.xxx.xx 25 << !
ここを
(telnet xxx.xxx.xxx.xx 25; sleep 3) << !
のように、sleep をはさむ必要があると思います。
sleep する長さは接続にかかる時間に応じて調節
してください。



206 :191=205 :2000/12/06(水) 02:53
>>200
すいません。自分でやってみましたが、できませんね。
HELO, MAIL などの間にも sleep しないとダメでした。



207 :名無しさん@お腹いっぱい。 :2000/12/06(水) 02:58
expectつかえ。

208 :192 :2000/12/06(水) 06:40
>>194

上手く行きました。どうもありがとうございました。

209 :名無しさん@お腹いっぱい。 :2000/12/06(水) 06:54
>>206
100Mでつながってる隣のマシンだとsleep無しでできたよ

210 :名無しさん@お腹いっぱい。 :2000/12/06(水) 10:16
>>191
なんで/dev/hdb5って断定できるの?


211 :押し得手 :2000/12/06(水) 10:50
emacs で ispell 使ってるんだけど、html のスペルチェックをすると
いつもタグで大量に文句言われてこまる。
何か手はありませんか?

212 :200 :2000/12/06(水) 13:26
皆さんありがとうございます。
>206
HELO, MAIL などの間にsleepをはさむってのはどうやるんですか。
とりあえず205ではできませんでした。

213 :名無しさん@お腹いっぱい。 :2000/12/06(水) 17:04
日本語が全く入力できなくなりました。
最初はうまくいっていたんですが、X-windowが止まってしまったので
ALT+CTL+BSPで終了し再度startxで起動したら日本語ステータスが
全く表示されなくなります。
現在Atok12se for linux, canna, jserver.wnn6が起動していますが、
どれ一つとしてshift + spaceで日本語に切り替わりません。
現在使っているのはTurbolinux Workstation6.0,
X-windowはgnomeです。

#echo $XMODIFIRES は
@im=kimputです。

あと、心なしか前よりX-windowのハング率が高くなったような
気がします。

どなたかわかる方、対処の仕方教えて下さい。お願いします。

214 :名無しさん@お腹いっぱい。 :2000/12/06(水) 17:31
>>200 だから207も言っているようにexpectっつープログラムを
インストールしてそれを使いなよ。expectはバッチ処理用 telnetだと
思えばいい。サーバがどんなメッセージを出したときどう
応答するかをあらかじめスクリプトで指定しておける。けっこう複雑なことができたはず。

215 :200 :2000/12/06(水) 18:12
>214
ためしに、man expectってやったら、
メチャメチャごっついmanがでてきて臆したのよ。そういうことって有るだろう?

216 :名無しさん@お腹いっぱい。 :2000/12/06(水) 23:02
Kernelって2.0とか2.2とか2.4とかあるけど、2.4が最新版だよね
2.0、2.2、2.4って古いとかないの?

217 :名無しさん@お腹いっぱい。 :2000/12/06(水) 23:18
ちなみに最新カーネルは Ver2.4test11だから、新旧はあるね

218 :名無しさん@お腹いっぱい。 :2000/12/06(水) 23:27
>>210
なぜ hdb5 とわかるかというと
> Kernel panic: VFS:Unable to mount root fs on 03:45
ここの 03:45 がマウントしようとしたデバイスの major,
minor 番号を十六進数でしめしており、該当するデバイス
が /dev/hdb5 だからです。


219 :210 :2000/12/07(木) 12:40
>>218
ほぇ〜
勉強になりました〜
てっきり3:45って時刻かと思ってた(死

220 :でびあん半死 :2000/12/07(木) 13:20
kernel 2.2.18pre??のコンパイル設定に失敗して起動しなくなったので
rescue diskから立ち上げようとしたのですがカーネルパニックで
init= オプションを付けろというエラーが出たので
rescue root=/dev/hda5 init=0
とかやってみたのですかカーネルパニックになります。
init= のオプション設定ってどうやるんでしょうか?

221 :名無しさん@UNIX :2000/12/07(木) 13:36
昔から疑問に思っていて口に出せなかったのだけど、メモリを2GB
載せたらスワップは4GB取るのでしょうか?
それともまったくスワップを取らなくてもよいのでしょうか?

今までは128MBくらいしかメモリを載せていなかったので・・・
このときは200MBくらいのスワップを取っていましたけど

キャー!恥ずかしい・・・

222 :でびあん復活(220) :2000/12/07(木) 13:45
rescue diskのshellから確認したらrootは/dev/hda2でした。
無事にレスキューで起動できて前のカーネルを入れて
(自分でつくったdebぱっけーじを保存してる)復活です。
ふぅ。
#なんで/dev/hda5だとおもったんだろう。

223 :名無しさん@お腹いっぱい。 :2000/12/07(木) 13:46
スワップの大きさは、
(その計算機上で動かす仕事が使うかも知れないメモりの最大値) - (その計算機に積んでいる実メモり)
で決めます。
上の式で求まる値が実メモりの倍を超えるくらいなら
メモり買い足したほうがいいんでない?
ということ。

224 :名無しさん@お腹いっぱい。 :2000/12/07(木) 15:23
おれ 128M だけど、個人用で Emacs とネスケと perl ぐらいしか
使わないから (gnome不使用)、 スワップはオフにしてるよ。
/tmp を ramdisk 16M にとってるけど、それでも半分以上あいてる。

225 :名無しさん@お腹いっぱい。 :2000/12/07(木) 16:03
NEC製のハードと富士通製のハードがありますけど、インストールするSolarisは別物なのでしょうか?
またソフトをインストールするときには、OSだけでなくハードも気にした方がよろしいのでしょうか?

226 :名無しさん@お腹いっぱい。 :2000/12/07(木) 17:21
>>225
こちらへどうぞ。
http://cocoa.2ch.net/test/read.cgi?bbs=unix&key=969471588&ls=10

227 :名無しさん@お腹いっぱい。 :2000/12/07(木) 18:02
>>226さん
あっどもどもです。

228 :名無しさん@お腹いっぱい。 :2000/12/07(木) 18:45
vinelinux2.1を入れてあるパソコン(cel400@333)のHDが何GBか余っているので
ここにWin2000を入れてデュアルブートにしたいのですが どうすればいいのでしょうか?
linuxはliloでブートしています(vine標準設定)
今のところ空き領域はFAT16かFAT32になっていますが
これをNTFSにして インストールしたいです

229 :名無しさん@お腹いっぱい。 :2000/12/07(木) 18:58
LILOはパーティション先頭に入れて
BOOTPARTというソフトでLDRを設定します。
ちょうどここに説明を見つけました。
http://www.gee.kyoto-u.ac.jp/LDP/HOWTO/mini/
Multiboot-with-LILO-4.html
で、NTLDRでLILOを起動します。
LinuxからはNTFSはreadonlyでマウントします(危ないから)。
私は前、やってましたけどBIOSのアップデートと動画コンテンツの
作成をする都合上2000ではだめなので98SEへ変えました。


230 :名無しさん@お腹いっぱい。 :2000/12/07(木) 19:07
>>229さん
ありがとうございました

231 :名無しさん@お腹いっぱい。 :2000/12/07(木) 19:16
>>20
bzip2でフィルタリングする-yオプションなんてのもあるよ。

tar cyvf xxx.tar.bz2 xxx
tar xyvf xxx.tar.bz2




232 :名無しさん@お腹いっぱい。 :2000/12/07(木) 19:59
shutdown
init
telinit
のどれでマシンの電源をきってます?
なんでも3つも似たコマンドがあるのやら

shutdownっていらない?

233 :名無しさん@お腹いっぱい。 :2000/12/07(木) 20:50
shutdown 長いからなあ、、、
でも、ほかにログオンしてるユーザがいる場合はこれしかないでしょ

234 :名無しさん@お腹いっぱい。 :2000/12/07(木) 23:18
お知らせしてくれるの?
もしくはセッションがあるときは落せない?

独りで使ってると、本来の使いかたから外れて来る
(いつもinit 0)

235 :名無しさん@お腹いっぱい。 :2000/12/08(金) 00:33
vine2.1をインストしました。セットアップコマンドでサウンドカード
の設定を実行した所、フリーズしてしまい。そのまま、電源を落としました。
以降、起動時、サウンドカードの所で起動が止まってしまいます。
対処方よろしくお願いします。(起動したいのです)

236 :名無しさん@お腹いっぱい。 :2000/12/08(金) 01:10
>>231
最近は -j or --bzip2 らしいですよ。

237 :216 :2000/12/08(金) 02:03
カーネル2.2、2.4ってあるけど、とにかく2.4にすればいんだよね。
Vine Linux2.0を使っているんだけど。


238 :名無しさん@お腹いっぱい。 :2000/12/08(金) 10:47
シングルでもshutdown使ってます。
時間指定して落とすこともできるしね。

>>234
wallでお知らせが行きます。

>>237
やめておいた方が良いと思う。


239 :名無しさん@お腹いっぱい。 :2000/12/08(金) 17:38
このスレ下がったおかげでゴミスレが乱立しちゃってるよ……

240 :237 :2000/12/08(金) 17:59
>>238
なぜ、やめたほうが良いのですか?

241 :名無しさん@お腹いっぱい。 :2000/12/08(金) 18:54
rshコマンドが何度やっても上手くいきません。
.rhostsの置き場所は/homeでいいんですよね?
それとも他の部分でも設定すべき所があるんでしょうか?


242 :名無しさん@お腹いっぱい。 :2000/12/08(金) 18:56
音楽CDは際栄はされるのですが、音が出ません。
スピーカーはオンなんですが・・・・
それに、CDをアンマウントしよとすると、
デバイスは使用中ですと、出ます
なぜなんでしょう?

243 :ルータがつくれません :2000/12/08(金) 20:25
NATをしないごくごく単純なルータをつくりたいのですが
うまくいきません。

* Linux2.2.14 SMP
(Vine1.1からカーネルバージョンアップ)
* NIC: 3Com 3C905B×2

LAN側とWAN側のNICは正常認識してIP等の設定もしました。
このPCからLAN側とWAN側には独立して(双方向に)
アクセスできます(pingが通るしtelnet等も可能)。
それなのに、ルータとして機能しません。
なんでじゃぁぁぁ!!

$ cat /proc/sys/net/ipv4/ip_forward
1

にはなってます。

root # ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
root #
な状況です。

チェックすべき項目などありましたら教えてください。
マジレス希望、です。


244 :名無しさん@お腹いっぱい。 :2000/12/08(金) 21:21
% netstat -arn
% ifconfig -a


245 :名無しさん@お腹いっぱい。 :2000/12/08(金) 21:47
>>241
ホームディレクトリ(ログインしたときはじめにいる
ディレクトリ)におきます。
/home がホームディレクトリなのですか?


246 :241 :2000/12/08(金) 22:54
>>245
すいません勘違いしてました。/homeではないですね(汗

それでちゃんとしたホームディレクトリに置いたのですが
まだ上手く動いてくれません。

MasterPCからSlavePCへrshでログインする場合、.rhostsを
SlavePC側のホームディレクトリに置く、という方法でいいのでしょうか。
MasterPCの方は何も変更する個所は無いんでしょうか。



247 :名無しさん@お腹いっぱい。 :2000/12/09(土) 00:59
Red Hat 6.2使ってるんですけど、NICの動作がどうもおかしいです。
PlanexのNICが2種類あるんですけど、

FMW-9702T(ドライバは添付フロッピーのものを使用)を使った時は、Win2000からtelnetでアクセス
しようとすると、Linux側で「Error! Something Wicked 0208」というエラーが出ます。

FMW-9700T(ドライバはOSインストール時に自動認識)を使った時は、telnetでつなぎに言っても
ログオンプロンプトが出ません。ifconfigで調べてみたら、受信はうまくいってるけど、応答
送信時がエラーになってるみたいです。

どちらのカードでもpingは問題無く通ります。Windowsで使ってた時は正常だったのでハード故障
とも思えないのですが、やっぱりドライバの問題でしょうか?

248 :247 :2000/12/09(土) 01:00
誤字だらけですみません・・・

249 :238 :2000/12/09(土) 01:31
>>240=237
カーネル2.4にしてXFree3.3.6が起動しない場合がある。
起動する場合もある。
この辺はマシンの構成による部分らしい。
XFree3.3.6でダメでも4.0なら平気なマシンもある。
Xを例えに出したが他にもいろいろと問題らしき点はある。
自力で直す自信があるなら構わんが、こんな質問を投げてくるようならやめた方が良い。
やって失敗した時、諦めて元の環境に戻す気があるなら試してもいいんじゃないかとは思う。



250 :245 :2000/12/09(土) 01:37
>>246
うまく動かない、というのが password なしでログ
インできないという意味だとすると(逆に言うと
password をいれればログインできる)、ホームディ
レクトリに .rhosts を置いてもうまくいかない場
合にチェックしたらよさそうなことといえば、

1. .rhosts の形式が
  hostname user
 になっているか

2. slavePC の方で .rhosts に書いた hostname
がきちんと DNS で引けるか(もしくは /etc/hosts
に書いてあるか)

あたりでしょうか?



251 :名無しさん@お腹いっぱい。 :2000/12/09(土) 22:36
この板って無意味なことを書き込むスレ無いな。
Joke RFC を真に受けた企業のはなし↓
http://www.lightreading.com/document.asp?doc_id=2756


252 :名無しさん@お腹出てきた。 :2000/12/09(土) 23:06
<<251
まさかいるとは。Qwest の現地法人だろ。
AIBO にフロッピー加えさせてデータ転送ってのは?
無駄牡蠣済まん

253 :251 :2000/12/09(土) 23:58
ごめん、「Joke RFC を真に受けた」って言い方良くなかったな。

Qwest が真面目な調査の中にいたずらで「RFC XXXX(実は Joke RFC)をサポ
ートしてますか?」みたいな質問を入れたら、かなりの数のベンダが RFC の
中身を確認もせずにサポートしてると回答したって話だよー。

# で、CISCO だけが「これはJoke RFC だろう」みたいに言ってきた


254 :名無しさん@お腹いっぱい。 :2000/12/10(日) 01:26
世の中っていい加減だね :p


255 :241=246 :2000/12/10(日) 02:11
>>245
ありがとうございます。

パスワードを入れればログインはできるようです。
その他の部分はおっしゃるような状態にちゃんとなってるんですが・・・
上手くいきません(涙)

ほとんどお手上げ状態です(;_;)

256 :250 :2000/12/10(日) 02:58
>>255
/etc/inetd.conf の in.rshd の起動のところには何か
オプションがついていますか?
手元の in.rshd のマニュアルによれば -l がついてい
ると .rhosts を一切みないそうです。
ところで slavePC のアカウントは root ではないです
よね?



257 :256 :2000/12/10(日) 03:00
書き忘れましたが、syslog には何かてがかりは
ないのでしょうか?


258 :名無しさん@お腹いっぱい。 :2000/12/10(日) 05:29
chmod 600 ~/.rhosts
しないとはじかれたよーな記憶が。

259 :名無 :2000/12/10(日) 12:03
Vine Linux2.1でサウンドカード(ダイアモンドマルチメディア社モンスターサウンドMX200)を使用するには
どうすればいいですか?

260 :名無しさん@お腹いっぱい。 :2000/12/10(日) 13:34
>>253
> かなりの数のベンダが RFC の中身を確認もせずにサポートしてると回答したって話だよー。

やだなぁ、ジョークで回答したに決まってるじゃないすか!

261 :名無し :2000/12/11(月) 04:33
>>259
質問をする前にJFとか当たったんスかね?
http://www.alsa-project.org/
のドライバとかでサポートされてるんじゃ?

262 :>261 :2000/12/11(月) 06:43
そこ見ました。
MX300とMX200では全然違うんですよ。


263 :名無しさん@cocoa.2ch.net :2000/12/11(月) 09:43
>>253
> かなりの数のベンダが RFC の中身を確認もせずにサポートしてると回答したって話だよー。
昔試したところでは、確かにそうだった。

ただ、1社だけ、技術者個人名で
"だいぶ悩んだんですがどうやっても実装できません。申し訳ありません"
と回答があった。

ちょっと悪いことをしたかな?と後ろめたくなった儂(w


264 :厨房 :2000/12/11(月) 11:59
プリンタデーモンに印刷データが詰まったままなんですが、
どうしてもインクがもったいなくて印刷したくありません。
どうやったら初期化できますか?
ちなみにターボ

265 :名無しさん@お腹いっぱい。 :2000/12/11(月) 12:27
>>264
man lprm

266 :名無しさん@お腹いっぱい。 :2000/12/11(月) 13:00
sambaの設定を行っているのですが、testparmでテストしたところ、以下のような
メッセージがでて先へ進めません。

the 'unix password sync' parameter is set and the 'passwd program'
(/bin/passwd) cannot be executed (error was No such file or directory).

どこが悪いのでしょうか?知っている方、いらっしゃったらレス下さい。よろしくお願いします。

267 :名無しさん@お腹いっぱい。 :2000/12/11(月) 13:02
で、/bin/passwd はあるのか?

268 :名無しさん@お腹いっぱい。 :2000/12/11(月) 13:30
確認したら無いです。
/usr/bin/passwd ならありますけど・・・

269 :名無しさん@お腹いっぱい。 :2000/12/11(月) 13:53
sambaで便乗質問です。
すでにインストールしているSambaをバージョンアップさせたい場合は、今までの
バージョンのSambaは削除した方がよろしいのですか?
また、削除のやり方も教えていただきたいです。

270 :名無しさん@お腹いっぱい。 :2000/12/11(月) 13:57
>>268
make uninstallとか
RPMなら-Uオプション(だったかな)。


271 :268 :2000/12/11(月) 14:14
>>270さん
レスありがとうございます。でも・・・それは269さんへのレスでは?

272 :268 :2000/12/11(月) 14:16
え〜っと /bin/passwd がなかったので、/usr/bin/passwd を
/bin/passwd にコピーしました。でも、そんな事していいのかな?と疑問に思っています。
testparmはエラーを吐かなくなりましたけど・・・

273 :名無しさん@お腹いっぱい。 :2000/12/11(月) 15:49
xwindowを終了させることはできますか?
startxで開始させて、GUIでちょこちょこっと設定を弄ったら、負荷を軽くするために
コマンドプロンプトに戻したいのです。

274 :名無しさん@お腹いっぱい。 :2000/12/11(月) 16:02
>>273
startx で起動したなら、CTRL + ALT + BS

275 :名無しさん@お腹いっぱい。 :2000/12/11(月) 17:39
>>274さん
できました!ありがとうございました。

276 :名無しさん@お腹いっぱい。 :2000/12/11(月) 18:41
画面のサイズは、どうやって知るのですか?
Linuxをインストールしてから、画面のサイズを
変えようと、CUIでXconfiguratorして、
モニタを選ぼうとしたら、なかったので、
「カスタム」にして、「1280x1024@60Hz使用可能なモニタ」
を選んだ。
次に、垂直周波数というのが出てきた。
これは、「50-90」を選んだ。
良く分からない画、1024x768をしようするので、
50-90を選んだ。モニタの説明書には、1024x768 @ 87Hz
と書かれてあるので、90までの「50-90」を
選んだ。
次にビデオメモリーを選んだ2Mなので2Mを選んだ。
1024x768を選び、完了した。
しかし、画面のサイズがきちんと変わったか知りたい
のでどうすればいいですか?

277 :名無しさん@お腹いっぱい。 :2000/12/11(月) 18:55
>>276
1024x768 の壁紙でも用意しておいたらどうだ?
あとは、X 起動時のログを眺めるとか。

278 :名無しさん@お腹いっぱい。 :2000/12/11(月) 19:06
>>276 xdpyinfo

279 :名無しさん@お腹いっぱい。 :2000/12/11(月) 19:25
kernel2.4.0のまずいところはなんですか?


280 :名無しさん@お腹いっぱい。 :2000/12/11(月) 19:52
出産予定日は過ぎていますが、
あわててむりに取り出すと流産の危険が。


281 :名無しさん@お腹いっぱい。 :2000/12/11(月) 20:04
>>280
お願いします先生、そこをなんとか先生のお力で。

282 :名無しさん@お腹いっぱい。 :2000/12/11(月) 22:31
get_dispsize(int i, char *p);


283 :名無しさん@お腹いっぱい。 :2000/12/12(火) 02:18
>>250
>>258
お二人の言われるようにしてみたらどうにかうまくいったようです。
色々と勉強になりました。ありがとうございました。

284 :名無しさん@お腹いっぱい。 :2000/12/12(火) 06:13
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|  WIN機で隠し属性のファイルを焼いたCD-Rが
|   REDHATで見れません!ナゼニ?
\_____ _______
         ∨
         C∧ ∧
   ___    ○(゚Д゚#)
 /◎\……C|  \
==============================================

285 :名無しさん@お腹いっぱい。 :2000/12/12(火) 07:54
マックであった、時刻合わせのタイムサーバ。
Linuxで使えるところ知りませんか?
Linuxconfに「特定のサーバから時刻情報を得る」ってのがあったんで。

286 :うひひ :2000/12/12(火) 10:31
>>285
NTP Time Servers
のキーワードでISPとか自分に近いサーバーを探してみな
http://www.kt.rim.or.jp/~ksakai/ntp.html


287 :名無しさん@お腹いっぱい。 :2000/12/12(火) 11:00
そんなもん適当にntpサーバ臭い名前のリスト作って
片っ端からポートスキャンかけりゃいいだろが。

# 本気にするなよ。(わら


288 :名無しさん@お腹いっぱい。 :2000/12/12(火) 17:13
標準出力と標準エラー出力を別のファイルに書き出すって
リダイレクト使ってうまいことできますか?
shで。

289 :名無しさん@お腹いっぱい。 :2000/12/12(火) 17:47
>>288 sh, bash, zsh なら somecmd >aaa 2>bbb でできる

290 :288 :2000/12/12(火) 20:13
>>289
即レスありがとうございます。
うまいこと行きました。

291 :名無しさん@お腹いっぱい。 :2000/12/13(水) 03:15
linkやsymlinkを使ってロックをかける場合、危険領域でシグナルを
受信したらどうすればよいでしょうか。

292 :名無しさん@お腹いっぱい。 :2000/12/13(水) 04:20
>>291
そりゃケースバイケースでしょうが、一番ものぐさな方法は
安全に無視できるシグナルは全部無視することでしょう。
そして symlink で lock する際に "/proc/自分の pid" に
symlink するようにして、トラップできないシグナルなどで
殺された場合の dead lock をなんとなく防いでみるとか。
SIGSTOP の場合は自分で考えてください。


293 :291 :2000/12/13(水) 05:05
>>292
こういうことですよね。目からウロコでした。
ありがとうございます。
でも、この方式ってLinux以外でも使えるのでしょうか、、、。

#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>

#define LOCKFILE "lock"

int main(int argc, char **argv){
 char oldname[256];
 struct stat buf;

 sprintf(oldname, "/proc/%d", getpid());

 while(symlink(oldname, LOCKFILE)){
  perror("symlink");
  if(stat(LOCKFILE, &buf)){
   perror("stat");
   unlink(LOCKFILE);
   fprintf(stderr, "unlinked dead lock\n");
  }
  sleep(1);
 }

 fprintf(stderr, "in critical section\n");
 sleep(10);

 unlink(LOCKFILE);
 return 0;
}


294 :名無しさん :2000/12/13(水) 08:15
>>284 仕様です

295 :292 :2000/12/13(水) 14:03
>>293

> こういうことですよね。目からウロコでした。
> ありがとうございます。
> でも、この方式ってLinux以外でも使えるのでしょうか、、、。

proc ファイルシステムがサポートされていれば使えるでしょう
(たとえば NetBSD ではこのまま使えるとおもいます)。
ただし OS ごとに /proc 以下の形式に違いがあるので、そこは
注意しないといけないですね。
それが嫌なら起動時に pid ファイルを作ってそこに symlink する
ようにするという手もありますが、この場合自力でそのプロセスが
あるかどうかを調べなければなりません。

あと蛇足ですが、symlink, stat とも成功した場合には 0, 失敗で
-1 が返ってくるので
   while(symlink(oldname, LOCKFILE) < 0){
      perror("symlink");
      if(stat(LOCKFILE, &buf) < 0){
じゃないと。


296 :名無しさん@お腹いっぱい。 :2000/12/13(水) 20:13
なんで穴があるとわかってて link でのロックにこだわるの?


297 :293 :2000/12/14(木) 00:04
え、穴があるのですか?




298 :名無しさん@お腹いっぱい。 :2000/12/14(木) 00:21
PSプリンタで半角カナって印刷できますか?
テキストファイルをs2ps通してpsファイルにしてlprに渡してるんですが。




続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver5.26+ (01/10/21-)