1: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:12:58.495 ID:4nZaberl0
プロセスをデーモン化する方法は分かったんだがその後特定のイベントを待つ処理ってどうやればいいの?
例えば
while(True):
while(True):
if イベントがあったら:
break
処理~
って感じだと常にwhile回っててものすごい負荷かかるよね
普通はどうやるの
2: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:18:05.455 ID:4nZaberl0
もうかしてこれが正解なのか
4: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:19:52.065 ID:r8u+S01U0
>>2
ちゃんとコマンドある
3: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:19:28.775 ID:r8u+S01U0
知ってるけど秘密
5: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:22:12.039 ID:4nZaberl0
おっぱい揉ませてあげるから教えて
6: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:23:07.321 ID:r8u+S01U0
>>5
嘘つきには教えたくない
9: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:29:33.702 ID:HyVdSc2D0
入力受付状態にしときたいってことでしょ?
あれだよんとね…えっと……
11: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:31:01.386 ID:r8u+S01U0
>>9
シグナルと入力待ちは違うだろ
入力待ちなら標準入力から読み込めば入力されるまで勝手に待ってる
10: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:30:37.050 ID:9rsinTAJ0
ミューテックスかコンディションかシグナルかって話?
12: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:32:32.683 ID:qetsN3Sn0
プロセスをデーモン化するってそんなやり方じゃない県
13: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:33:51.584 ID:+CP5xdq20
forkして親を殺してtty切り離すんだぞ
14: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:34:12.945 ID:4nZaberl0
ググろうにもググる単語が分からんからヒントだけでもありがたい
16: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:35:31.693 ID:9rsinTAJ0
selectじゃダメなん?
17: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:35:41.730 ID:+CP5xdq20
1.forkして親プロセスを終了、自動的にinitの子となる
2.setsid()で制御端末を切り離す
3.カレントディレクトリを/ ルートへ
4.標準入出力、エラー出力をnull、厳密にはcloseする
18: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:38:27.228 ID:QSjTzmD3d
ソケット通信ならLISTEN
20: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:40:19.924 ID:4nZaberl0
selectってシステムコールのやつ?これでもできるのかな…
というかイベントを限定しないと解決しない気がしてきた
あるファイルに特定の文字列が書き込まれた時、だとしたらどうするのが得策なんだろう
22: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:41:58.072 ID:+CP5xdq20
>>20
inotifyじゃダメな理由は?
23: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:43:33.600 ID:r8u+S01U0
>>20
そんな素人の疑問かよ
常識過ぎる知識だから教えてやろう
パイプで調べりゃ出てくるかと
21: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:40:53.903 ID:r8u+S01U0
入力待ちじゃなくてシグナル待ちだろ?
入力待ちなら読み取るデータが届いてなければ勝手に待ってるから簡単
26: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 20:53:18.341 ID:Ihg5Ujmj0
wait
27: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:02:02.579 ID:KavwZBi9p
もしかしてpipeを開いてreadしたら何かあるまで待ってくれるのか
29: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:03:26.826 ID:r8u+S01U0
>>27
そうだが
そんなのも知らないレベルでよくデーモンにできたと感心する
28: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:03:19.911 ID:KavwZBi9p
ヒントにはなったけど監視する対象がファイルだとどう使うんだ…
30: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:04:19.263 ID:r8u+S01U0
>>28
パイプも普通のファイルも
UNIXの世界じゃ単なるファイル
31: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:05:09.538 ID:KavwZBi9p
pipeはreadしたら待つけど普通のファイルだとreadしたらその時点の内容を取得してしまうのでは
32: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:06:33.929 ID:r8u+S01U0
>>31
ファイルを開きっぱなしにすればいいだろ
33: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:06:38.764 ID:brzIpRVHa
Node.jsならOSシグナル拾えるだろ
34: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:07:47.266 ID:9Ifi0vNIM
ソースコード呼んでこいよ
35: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:10:02.113 ID:KavwZBi9p
もしかしてファイルの終端までいくと待ってくれる?
36: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:11:47.208 ID:r8u+S01U0
>>35
不明瞭だけど不正解っぽいな
実際に試して確認しな
37: 以下、5ちゃんねるからVIPがお送りします 2018/11/09(金) 21:16:36.953 ID:brzIpRVHa
デーモンで無限ループは流石にない
http://viper.2ch.sc/test/read.cgi/news4vip/1541761978/
ほかのデーモンソースをコピペ・・・
この記事へのコメントはありません。