ポート監視

昨晩の続きを少し。
サービス止めてみた。

# /etc/init.d/snmpd stop
Stopping network management services: snmpd snmptrapd.
#

で、以下を

#!/usr/bin/gosh

(use gauche.process)

(define l '((/home/rms/1.programming/1.Gauche/3.system/2.system/test2.sh)))

(define main
  (lambda (args)
    (let ((x (process-output->string-list (car l))))
      (display (car x))
      (newline))))

実行。

# ./test2.scm
*** ERROR: pair required, but got ()
Stack Trace:
_______________________________________
  0  x

  1  (display (car x))
        At line 10 of "././test2.scm"
# 

ええと、test2.sh って以下か。

# cat test2.sh
#!/bin/bash

netstat -n --all|grep ':161 '
#

出力がナシ、であれば '() が戻ってくるのか。どうしたものか。

#!/usr/bin/gosh

(use gauche.process)

(define l '((/home/rms/1.programming/1.Gauche/3.system/2.system/test2.sh)))

(define main
  (lambda (args)
    (let ((x (process-output->string-list (car l))))
      (cond ((null? x) x)
	    (else
	     (display (car x))
	     (newline))))))

てーか、テストファーストでヤリたいですな。あと l をなんとか抽象的にナニ。