9-3. SunOS 4.1.x について (1) インタ−フェ−スとパケット転送制御 '96〜 * SunOS 4.1.x の ifconfig の特殊なところ SunOS 4.1.x はブロ−ドキャストの解釈が違うことに先ず注意したい。しかし解釈が違う 設定のまま異機種混合ネットワ−クで使用しても、問題は別に起きなかった。 # /etc/ifconfig le0 255 でないといけない!。 le0: flags=43 ↓ inet 202.241.128.1 netmask ffffff00 broadcast 202.241.128.0 ether 7:6:02:14:99:ff ifconfig の設定は /etc/rc.boot でネットマスクを付けずに、 ネットワ−ク・インタ− フェ−スを初期化する。次に /etc/rc.local の中で "+" を使ってネットマスクだけ再設 定する。 ifconfig le0 'hostname' netmask + しかしこの "+" は Sun 独自で、/etc/netmasks ファイルから、ネットマスク値をとる指 示である。分かりにくいので "+" は使わず明示した方がよい。 * インタ−フェ−スが1つの場合 # cat /etc/hostname.le0 << -rw-r--r--、root パ−ミション。 sparc << sparc はこのマシンの名前。 /etc/hosts ----------------------------- |127.0.0.1 localhost |202.241.128.1 sparc jiro << /etc/hostname.le0 と sparc は名前を合わせるこ と。jiro は別名である。 注.ホストのIPアドレスを変更する場合は、/etc/hosts に書いたIPアドレスを変え て reboot する。NIS も使っている場合は # cd /var/yp, # make とやること。 * インタ−フェ−スが2つの場合 # cat /etc/hostname.le0 << 1個目のインタ−フェ−ス。 sparc # cat /etc/hostname.le1 << 2個目のインタ−フェ−ス。 sparc-gw /etc/hosts ----------------------------- |127.0.0.1 localhost |202.241.128.1 sparc jiro |202.241.129.1 sparc-gw * ハ−ドウェアの情報を表示する # dmesg 現在の configuration file、パケットの転送制御で要る。 Sep 8 03:42 ↓ SunOS Release 4.1.2-JLE1.1.2 (GENERIC) #1: Mon Jun 1 17:24:04 JST 1992 Copyright (c) 1983-1991, Sun Microsystems, Inc. mem = 32768K (0x2000000) avail mem = 30863360 Ethernet address = 7:6:02:14:99:ff << 適当なMACアドレスに変えています。 | le0 at SBus slot 0 0xc00000 pri 5 << ネットワ−ク・インタ−フェ−ス。 * IPパケットの転送制御 Apollo のように簡単にはいかない。 マシンのOSのカ−ネルを再構築しなければならな い。この作業は本書での管理者の範囲を超えている。 もし IP forwarding をしないよう にしたければ出入りのSI業者に一度頼む。その時の作業ログをとっておき、戻し方も教 えてもらっておこう。同じ Sun でもOSやマシンの種類によってカ−ネルも違う。 一応 どうやってIPパケットの転送制御するのか書いておく。下に示す in_proto.c ファイル の IPFORWARDING という定数を変更するのである。デフォルトは0であり、イ−サネット ・インタ−フェ−スが2つあれば自動的に転送するようになっている。転送禁止にするに は−1にする。つまり #define IPFORWARDING -1 にしてコンパイルし、 これを含む一時 的なカ−ネルを作成し、本物のカ−ネルと交換するわけである。 /usr/kvm/sys/netinet/in_proto.c << /usr/sys/netinit からリンク。 ---------------------------------- |#include SPARCstation 2, SunOS 4.1.2 の場合 | | |#ifndef IPFORWARDING |/* #define IPFORWARDING 0 */ |#define IPFORWARDING -1 << -1 を指定して、転送禁止にする。 |#endif |int ip_forwarding = IPFORWARDING; # /bin/arch -k sun4c << machine のタイプを調べる。 # cd /usr/kvm/sys/sun4c/conf;ls -l << Kernel configuration file の色々。 -rw-r--r-- 1 root 1344 Oct 24 1991 DL60 -rw-r--r-- 1 root 1637 Oct 24 1991 DLS60 -rw-r--r-- 1 root 7836 Dec 2 1991 GENERIC << デフォルトはこれ。 -rw-r--r-- 1 root 6561 Dec 2 1991 GENERIC_SMALL -r--r--r-- 1 root 4093 Oct 24 1991 Makefile.src -rw-r--r-- 1 root 2542 Oct 24 1991 NFS60 -r--r--r-- 1 root 2644 Oct 24 1991 README -rw-r--r-- 1 root 2447 Oct 24 1991 SDST60 -r--r--r-- 1 root 23 Oct 24 1991 devices -r--r--r-- 1 root 8986 Oct 24 1991 files # cp GENERIC KATOU << これをコピ−して使うことにする。 # chmod +w KATOU /usr/kvm/sys/sun4c/conf/KATOU ------------------------------ |machine "sun4c" << machine と cpu はこのまま。 |cpu "SUN4C_60" |ident "KATOU" << configuration file の名前を入れる。 |#ident "GENERIC" # /usr/etc/config KATOU Doing a "make depend" # cd /usr/kvm/sys/sun4c/KATOU;ls << ディレクトリができて、ファイルがコピ Makefile dma.h is.h pp.h −される。/usr/kvm/sys/sun4c/KATOU。 dnalink.h kb.h pty.h tod.h | # make << すぐ終わる。1分ぐらい。 cc -sparc -c -O -Dsun4c -DGENERIC -DSUN4C_60 .. /netinet/in_proto.c | loading vmunix rearranging symbols text data bss dec hex 1327104 191824 118328 1637256 18fb88 # ls Makefile ft.h ... tcp_debug.o vmunix << できた。サイズ 1697083 byte。 # cp /vmunix /vmunix.kkk << 現在のを念のためとっておく。 # cp vmunix /vmunix << 入れ替える。リブ−トしてOK。 * ping コマンド # /usr/etc/ping -s tarou << root で実行した。 PING tarou: 56 data bytes 64 bytes from tarou (192.9.200.3): icmp_seq=0. time=1. ms # ping tarou tarou is alive (2) SunOS スタ−トアップ制御 '96〜 * スタ−トアップの概要 SunOS 4.1.x 系のスタ−トアップ・ファイルについて、 TCP/IP ネットワ−クの部分のみ 説明する。 4.1.x は BSD 系のOSなので /etc/rc, /etc/rc.boot, /etc/rc.local が制 御ファイルである。これらのファイル中の以下の部分は関係しないので、コメントにする か、消去するかしてあると思って頂きたい。 ・NFS が使う biod, nfsd, rpc.lockd, rpc.statd, rpc.mounted。 ・NIS が使う ypbind, rpc.yppasswdd, ypxfrd, ypserv, ypupdated。 ・SecureNFS が使う keyserv。これは暗号化 NFS。日本では使えない。 ・かな漢字サ−バの cesd, ccv, kkcv。ccv と kkcv は cesd の管理下にある。 ・swapper, pagedaemon, update はシステムが使用するため必要。 ・プリントサ−バの lpd。プリンタを使わなければいらない。 ・RPC 管理の portmap、これは NIS のアップデ−ト時にも使われるので注意。 ・他 cron, syslogd は用がなければ必要ない。rpc.solved は何をやるのか不明。 SunOS はスタ−トアップ・ファイルの実行に際して、色々制御ファイルを使えるようにな っている。一般的なのは /etc/networks で静的経路の記述ファイルがある。 これ以外に も、/etc/defaultrouter、/etc/netmasks などがある。制御ファイルが不用意に増えると 何をやっているのか分からなくなる。ここでは、これらは使わずに直接 rc ファイルに記 述することにする。 /etc/hostname.le0 /etc/hostname.le1 2つインタ−フェ−スがあるとする。 ------------------ ------------------ |sparc |sparc-gw * スタ−トアップ制御ファイル /etc/rc 以下、関係ありそうなところを抜粋。 ------------------------------------------------------------------------- |#! /bin/sh - |# @(#)rc 1.45 90/08/08 SMI; from UCB 4.3 |# |# The rc sh gets the console. All commands are by |# default protected from tty signals (i.e. are not interruptable). |# Interrupts can be enabled by proceeding any command line with "intr". |# Console redirection is no longer needed. |# |# Make sure PATH is exported or intr won't find what it needs. |HOME=/; export HOME |PATH=/bin:/usr/bin:/usr/etc; export PATH | |sh /etc/rc.local | |swapon -a | echo preserving editor files |(cd /tmp; /usr/lib/expreserve -a) | echo clearing /tmp |(cd /tmp; rm -f - *) | | echo -n 'standard daemons:' |update; echo -n ' update' | |rm -f /var/spool/cron/FIFO << cron 必要なければ、ここコメントにする。 |cron << ここもコメントにする。 | |if [ -d /var/spool/uucp ]; then << UUCP は関係ないですが目に止まったので。 | (cd /var/spool/uucp | >LCK.0 | rm -f LCK.* | if [ -d /usr/lib/uucp ]; then | su uucp -c /usr/lib/uucp/uusched & \ | echo -n ' uucp' | fi) |fi | echo '.' |echo -n 'starting network daemons:' | |if [ -f /usr/etc/inetd ]; then << inetd ス−パ−・デ−モン。 | inetd |fi |if [ -f /usr/lib/lpd ]; then << これはプリンタ・デ−モン。 | rm -f /dev/printer /var/spool/lpd.lock | /usr/lib/lpd |fi |date |exit 0 /etc/rc.boot -------------------------------------------------------------------------------- |#! /bin/sh - |PATH=/sbin:/single:/usr/bin:/usr/etc; export PATH |HOME=/; export HOME | |hostname="`shcat /etc/hostname.??0 2>/dev/null`" |if [ ! -f /etc/.UNCONFIGURED -a ! -z "$hostname" -a "$hostname" != "noname" ]; then | hostname $hostname |fi | |interface_names="`shcat /etc/hostname.* 2>/dev/null`" |if test -n "$interface_names" |then | ( | IFS="$IFS." | set `echo /etc/hostname\.*` | while test $# -ge 2 | do | shift | if [ "$1" != "xx0" ]; then |# ifconfig $1 "`shcat /etc/hostname\.$1`" netmask + -trailers up | ifconfig $1 "`shcat /etc/hostname\.$1`" netmask 0xffffff00 -trailers up | fi ↑ | shift クラスCのネットマスクにしておく。 | done ここではネットマスクだけ設定して | ) いる。 |fi | |ifconfig -ad auto-revarp up | |if [ -z "`hostname`" ]; then | hostconfig -p bootparams |fi | |if [ -z "`hostname`" -a ! -f /etc/.UNCONFIGURED ]; then | intr sh /etc/rc.ip |fi | |ifconfig lo0 127.0.0.1 up | |# ここでは route コマンドは使えないと注意書きがあった。 |#if [ -f /sbin/route -a -f /etc/defaultrouter ]; then |# route -f add default `cat /etc/defaultrouter` 1 |#fi /etc/rc.local ------------------------------------------------------------------------- |# @(#)rc.local 1.116 91/05/10 SMI; from UCB 4.27 83/07/06 |# |# The file "/etc/.UNCONFIGURED" exists on machines shipped from the |# factory. We use this file here in order to run configuration programs |# at the time a machine is booted for the first time. The configuration |# programs are responsible for deleting this file after they have |# completed configuring the system. These configure programs may halt |# or reboot the system. |# |PATH=/bin:/usr/bin:/usr/etc:/usr/ucb; export PATH |LC="/usr/etc/install/run_configure" |NC="/usr/etc/install/sysIDtool" | |if [ -f /etc/.UNCONFIGURED ]; then | if [ -f ${NC} ]; then | intr ${NC} | if [ $? = 0 ]; then | intr /usr/etc/install/sys_rootpasswd | else | if [ -f ${LC} ]; then | intr ${LC} | fi | fi | else | if [ -f ${LC} ]; then | intr ${LC} | fi | fi | tzsetup |fi | |if [ -f /etc/defaultdomain ]; then << これは NIS のドメイン名。 | domainname `cat /etc/defaultdomain` |fi | |#ifconfig -a netmask + broadcast + > /dev/null |ifconfig le0 broadcast 202.241.128.255 > /dev/null << broadcast address をち | ゃんと設定し直している。 | |#ifconfig le1 broadcast 202.241.128.255 > /dev/null << 2個目の interface。 | |# デフォルトでは rc.boot で実行しているのに再度やることになっている。無視する。 |#if [ ! -f /sbin/route -a -f /etc/defaultrouter ]; then |# route -f add default `cat /etc/defaultrouter` 1 |#fi | |# 上記経路設定をここでやる。 |route add net 0.0.0.0 192.9.201.1 1 << ここで静的ル−トを記述する。 | |ifconfig -a << ifconfig の設定状態を表示する。 | |defroute="`netstat -n -r | grep default`" |if [ -z "$defroute" ]; then | if [ -f /usr/etc/in.routed ]; then | in.routed << routed の稼働。Sun の場合は in.xxx と | fi というように in が付くのが特徴。 |fi | |if [ -f /usr/etc/in.named -a -f /etc/named.boot ]; then | in.named << DNS の稼働。 |fi | |#if [ -f /usr/etc/syslogd ]; then << syslog をとりたい場合はコメントを外す。 |# rm -f /dev/log |# syslogd |#fi | |if [ -f /usr/lib/sendmail -a -f /etc/sendmail.cf ]; then | (cd /var/spool/mqueue; rm -f nf* lf*) | /usr/lib/sendmail -bd -q1h; echo -n ' sendmail' |fi | |if [ -f /etc/httpd.conf ]; then << CERN httpd の起動も追加してみた。 | /usr/local/bin/httpd -r /etc/httpd.conf | > & /dev/console |fi * 稼働プロセスの参考 # ps -ax PID TT STAT TIME COMMAND 0 ? D 0:00 swapper 1 ? IW 0:00 /sbin/init - 2 ? D 0:00 pagedaemon 55 ? IW 0:00 portmap 63 ? S 0:04 update 66 ? IW 0:00 cron 71 ? IW 0:00 inetd 74 ? IW 0:00 /usr/lib/lpd 113 ? IW 0:00 syslogd 121 ? IW 0:00 sendmail: accepting connections on port 25 | 130 ? IW 0:00 /usr/etc/cesd ここから下なくてもメ−ル配送には関係ない。 131 ? S 0:00 /usr/etc/ccv -f 132 ? S 0:00 /usr/etc/kkcv -f 92 co IW 0:00 keyserv 164 co IW 0:00 /sun/SunSolve/bin/rpc.solved * Apollo と Sun の NFS の設定 [ Sun の設定 ] /etc/export ----------- |/sun << Sun の /sun ディレクトリのみ解放する場合。 /etc/export ----------- |/ << Sun の全ディレクトリを解放する場合。 % /usr/etc/expotfs -a << これをやると /etc/export が有効になる。 [ Apollo から Sun へ ] $ /etc/mount -o soft sparc:/sun /sunp << 以下で開始。 $ /etc/mount -o soft sparc:/sun /sunpp $ /etc/mount -o soft sparc:/ /sun $ wd /;ld adus backup_log bin bscom bsd4.2 bsd4.3 sunp sunpp << 仮想のディレクトリができている。 $ /etc/umount /sunpp << これで終了。 $ /etc/umount /sunp (3) 煮ても焼いても食えんマシン '96〜 * 捨てられないマシン ここでは Sun の古いマシンがあるとしよう。4.1.x-JLE 日本語版のOSである。 そのマ シンに PostScript の SPARCprinter がついているような場合、容易に捨てられない状況 があったりする。なんせこのプリンタは高かった。 この SPARCprinter は 4.1.x のOS でないと動かない。単に Solaris 2.x に変えるわけに行かないのである。 4.1.x-JLE の 場合、先にも述べたが DNS の扱いが NIS とも絡んで非常にやっかいになる。 4.1.x-JLE では DNS を働かせるには NIS が動いてないといけない。インタ−ネットの世 界では DNS はいわば必須なので困る。4.1.x の英語版では、 ホスト名解釈のレゾルバと いうのを入れ替えることによって直接 DNS を見るようにすることはできる。 しかしここ では日本語版を想定している。またたとえ英語版でも、入れ替えは相当やっかいみたいで ある。WWWのどこかにやり方が書いてあったが、本書の管理者の範囲を完全越えている。 [ ホストの確認 ] 他のマシンから telnet アクセスしても最初に出て来る。 ↓ SunOS Release 4.1.4-JLE1.1.4 (GENERIC_SUP1) #1: Thu Aug 22 14:24:06 JST 1996 # ldd /bin/cp -lc.1 => /usr/lib/libc.so.1.9 << レゾルバを変更するには、これを入れ替える。 -ldl.1 => /usr/lib/libdl.so.1.0 下手にいじるとマシンが壊れる。 # uname -a << # uname -r だと 4.1.4-JL と出る。sparc は SunOS sparc 4.1.4-JL 1 sun4c hostname コマンドで出て来るホスト名。 * SunOS 4.1.x の NIS の基本 ・NIS のサ−バは ypserv、NIS のクライアントは ypbind である。 ・NIS のスレ−ブサ−バは予備であり、NIS の最低限の実装には必要ない。 ・NIS の他のデ−モンの yppasswdd や ypupdated などは最低限の実装には必要ない。 ・NIS のデ−モンをバリア・セグメントのホストで稼働させるのは望ましくない。 ・システム起動時のみ自分のIPアドレスと localhost のエントリを、/etc/hosts から 参照する。起動後は NIS の hosts マップだけを見るようになる。 ・次のファイルも NIS 起動後、NIS のマップだけが参照される。passwd, netmasks, rpc, networks, protocols, services, rpc ファイルなどである。 ・メ−ルの /etc/aliases ファイルも NIS で管理される。newaliases コマンドをたたい た後、NIS マップの更新をやること。 ・NIS でホスト名が見つからなかった場合、DNS を検索しに行くようにするには、NIS の Makefile で B=-b を設定し、NIS マップを作成する。 ・/etc/passwd, /etc/hosts 等変更したら # cd /var/yp, # make をやること。変更は直 ちに有効になる。確認は /etc/hosts の場合 # ypcat hosts で内容が表示される。 ・portmap デ−モンが稼働していないと、上記 # make, # ypcat hosts は効かない。 * SunOS 4.1.x の NIS と DNS の振る舞い ・sendmail.nis は NIS しか見ない。 NIS で見つからなければ DNS を見にいきそうなも のだが、そうはならない。 ・sendmail.mx は NIS が稼働していても DNS しか見ない。即ち ypserv, ypbind は関係 ない。稼動していなくても直接 DNS を見にいく。 ・sendmail 8.8.5 は resolv.conf があれば DNS しか見ない。 Makefile の -DNIS 指定 は NIS が管理する /etc/hosts も見るという意味ではない。 NIS が管理する aliases を見るということらしい。これが一番いやらしい。非常に困る。 ・DNS は他のホストからなら見ることができる。resolv.conf は関係しない。このファイ ルは、そのホストでの DNS クライアントのためのものである。 * SunOS 4.1.x をどう使う 1) 社内外のメ−ルサ−バとして使う 外部にメ−ルを送るには sendmail は DNS を参照しなければならない。 このためメ−ル サ−バのホストでは /etc/resolv.conf で DNS のアドレスを記述する。 resolv.conf の 指定があるとどうやっても、このOSでは sendmail は DNS しか見なくなる。 これによ り内部同士のメ−ルでは、ホスト名解釈のため /etc/hosts や NIS は使えない。 内部ネ ット用の DNS を設けるしか手がないのだ。つまり DNS のスプリット・ドメイン構成にす るしか方法がない。しかしこれはやっかいだ。お勧めできない。 2) 社外用のメ−ルリレ−、社内用のメ−ルサ−バとして使う 外部とのメ−ルは別に設ける社外用メ−ルサ−バが働くとする。社外用のメ−ルリレ−は そのメ−ルサ−バと、ただメ−ルを移動させるだけである。これならメ−ルリレ−は DNS は関係ない。メ−ルサ−バのホスト名さえ分かればいいのである。 /etc/hosts 制御で社 外用のメ−ルリレ−、社内用のメ−ルサ−バとして使うことができる。ただ resolv.conf をこのホストで書こうとすると、またやっかいなことになる。 Netscape の使用は諦める ことだ。しかし # ping www.iij.ad.jp なども効かないのでは、困った!。 3) 社外用のWWWサ−バとして使う DNS だけ稼働させれば、社外からWWWサ−バにアクセスできる。 外からは NIS 経由で なく直接 DNS にアクセスできるのだ。 しかしWWWへのアクセス・ログを取る場合少々 困る。どこからアクセスが来たか、それをログでは見たい。ほかっておくとIPアドレス で記録されることになる。ホスト名で記録したければ、WWWサ−バのホスト自体も DNS のクライアントにならなければならない。resolv.conf を設定する必要がある。そうする と、このOSでは NIS 経由でないと DNS を見に行かない。NIS サ−バをともかく設置し なければならないのである。これは困ったことになった。 最低限の NIS を稼働させるに しても、NIS はインタ−ネットで安全とはいえない。するとログの記録をIPアドレスに するか、WWWサ−バとして使うのは諦めるしかない。 4) ただのクライアントとして使うだけ メ−ルサ−バでもなければWWWサ−バでもない。 Netscape などブラウザを使うだけの ホストならばどうだ。外部URLのWWWにアクセスするには、resolv.conf を設定しな ければならない。しかし、ホスト名解釈に DNS を使うということは、sendmail も DNSを 使うことになる。またまた問題が出た。 内部ネットのメ−ルのやりとりも DNS 制御とな りスプリット・ドメイン構成となるのだ。Netscape が使えるのにメ−ルができない。 そ んなわけには行かない。苦肉の策として外部WWWへは、 社内に別に Proxy サ−バを設 けて、間接アクセスさせるか。ん−、やっとれん。 全く SunOS 4.1.x は煮ても焼いても 食えん奴だ。(でもその後ディスク増設などのテスト機として役立つことになるのだった)。 * NIS の設定手順 /etc/hosts << これだけ NIS で管理したい。最も最低限の設定にする --------------------------- には、自ホストが hostB ならば、localhost と hostB |127.0.0.1 localhost だけの /etc/hosts にすればよい。 |192.9.201.1 hostB |192.9.201.2 hostC |192.9.201.3 hostD mailhost # cat /etc/defaultdomain << 現在の NIS のドメイン名を一応チェックする。 noname # domainname << domainname コマンドでも確認できる。NIS のドメイン noname 名が出て来る。最初は noname である。 # domainname dummy << NIS の domainname を dummy とする。 /etc/defaultdomain << このファイルにも dummy と書き入れておくこと。やっ ------------------- ておかないと reboot で立ち上がらなくなる。 |dummy # mkdir /var/yp << 最初 yp ディレクトリはない、作ること。 # cp /usr/lib/NIS.Makefile /var/yp/Makefile # cd /usr/etc/yp # vi Makefile << Makefile 変更して ypinit -m をやること。 Makefile ----------------------------------------------------------------------------- |# @(#)make.script 1.36 90/12/20 SMI |# This file should reside in both /var/yp/Makefile and /usr/lib/NIS.Makefile. |# It should only be executed from /var/yp. | |# Set the following variable to "-b" to have NIS servers use the domain name |# resolver for hosts not in the current domain. |B=-b << B= を B=-b に変更する。これが肝心!。 |#B= | | # /usr/etc/yp/ypinit -m << /var/yp ディレクトリを作ってからやること。 Installing the NIS data base will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. Do you want this procedure to quit on non-fatal errors? [y/n: n] Return キ− OK, please remember to go back and redo manually whatever fails. If you don't, some part of the system (perhaps the NIS itself) won't work. At this point, we have to construct a list of the hosts which will run NIS servers. taro is in the list of NIS server hosts. Please continue to add the names for the other hosts, one per line. When you are done with the list, type a . next host to add: hostB NIS マスタ−サ−バのホスト名 next host to add: ^D NIS スレ−ブサ−バはなしとする。Ctrl+D キ− The current list of NIS servers looks like this: hostB Is this correct? [y/n: y] y There will be no further questions. The remainder of the procedure should take 5 to 10 minutes. すぐ終わる。ものの1秒。 Building /var/yp/dummy/ypservers... Running /var/yp/Makefile... updated passwd updated group updated hosts | Current working directory /var/yp hostB has been set up as a NIS master server without any errors. 以下のようにファイルができる。 # ls /var/yp Makefile group.time netmasks.time protocols.time services.time aliases.time hosts.time networks.time publickey.time dummy netid.time passwd.time rpc.time /etc/rc.local rpc.ypupdated が稼働していると ping が認識しないみたい。 --------------------------------------------------------------- | | |# if [ -f /usr/etc/rpc.ypupdated -a -d /var/yp/$dname ]; then |# rpc.ypupdated; echo -n ' ypupdated' |# fi # reboot # ps -ax 55 ? IW 0:00 portmap << 必要。/var/yp/make で RPC コ−ルを使うため。 60 ? IW 0:01 ypserv << NIS のサ−バです。 62 ? IW 0:00 ypbind << NIS のクライアントです。内部メ−ルのやりとりだけ | なら、なくてもいいみたい。 注.portmap を停止して、再度 /usr/etc/portmap と起動しても # ypcat hosts は効か ない。# cd /var/yp, # make も効かない。マシンを reboot して最初から portmap を稼働させておかなければ、これらのコマンドは効かない。 # cat /etc/resolv.conf domain nix.co.jj << これはないとダメみたい。 nameserver xxx.xxx.xxx.xxx # ping indy1 << nix.co.jj を付けている。 indy1.nix.co.jj is alive [ メンテナンス ] /etc/passwd や /etc/hosts など、変更したらともかく /var/yp/make をやっておくこと。 # cd /var/yp # make updated hosts << 1分ぐらいかかることもある。 | # ypcat hosts 192.9.201.1 hostB 192.9.201.2 hostC 192.9.201.3 hostD mailhost ← ホストに別名が付いていればそれも反映される。 127.0.0.1 localhost * Sun EWSの保守終了 Sun Microsystemsは 2002年9月30日で EOSL( End Of Service Life ) とする製品、 ソフトウェアをアナウンスした。SPARCstation 2、SunOS 4.1.3( Solaris 1.1 ) など。 (4) sendmail と popper のコンパイル '96〜 * sendmail-8.8.5 のコンパイル ( SunOS 4.1.4-JLE ) ================================================================================ 作成する sendmail は、ホスト名検索を /etc/hosts 制御とする。DNS や NIS は見ない。 ================================================================================ # ls /usr/lib/*db* << 入っているデ−タベ−スを調べる。 /usr/lib/libdbm.a # cd sendmail-8.8.5/src # cp Makefiles/Makefile.SunOS Makefile Makefile --------------------------------------------------------------------- |# define the database mechanisms available for map & alias lookups: |# -DNDBM -- use new DBM |# -DNEWDB -- use new Berkeley DB |# -DNIS -- include NIS support | |#DBMDEF= -DNDBM -DNEWDB -DNIS << libdbm.a しかないので -DNEWDB を削る。 |DBMDEF= -DNDBM -DNAMED_BIND=0 << ホスト名検索で DNS を見ないようにする。 | |# loader options |LDOPTS= -Bstatic | |# libraries required on your system |#LIBS= -ldb -lresolv |LIBS= -lresolv << libdbm.a しかないので -ldb を削る。 | | << SunOS のリゾルバ /usr/lib/libresolv.a を使う。 注.DBMDEF 定義のところ -------------------------------------------------------------------------------- SunOS 4.1.x にはデフォルトでは libdbm.a しかないので -DNEWDB 指定は有効ではない。 -DNIS は NIS のマップも見るようにする。この意味はホスト名検索で、NIS を見てなけ れば DNS を見るということではない。どうも NIS が管理する aliases も見るというこ とらしい。SunOS の NIS に絡んだ非常に訳のわからないところである。 -------------------------------------------------------------------------------- # make << マニュアルを作るところでエラ−になるが、 本体はノ−・エラ−、ノ−・ワ−ニングである。 # ls -al send* << sendmail ができる。 -rwxr-xr-x 1 root 557056 Apr 24 14:23 sendmail -r--r--r-- 1 1237 16045 Jan 17 08:26 sendmail.8 -r--r--r-- 1 1237 55314 Jan 15 10:51 sendmail.h -r--r--r-- 1 1237 4912 Sep 12 1996 sendmail.hf # make install << インスト−ルする。 install -o root -g kmem -m 6555 sendmail /usr/lib for i in /usr/ucb/newaliases /usr/ucb/mailq /usr/ucb/hoststat /usr/ucb/purgestat; do rm -f $i; ln -s /usr/lib/sendmail $i; done install -c -o root -g kmem -m 644 /dev/null \ /usr/lib/sendmail.st install -c -o root -g kmem -m 444 sendmail.hf /usr/lib groff -Tascii -mandoc aliases.5 > aliases.0 sh : groff: not found 注.Sun の /etc/group には kmem というグル−プが最初からある。 # /usr/lib/sendmail -bd -q1m & << 動作確認。一度 reboot した方がよい。 # ps -ax << プロセスの確認。 970 ? S 0:00 sendmail: accepting connections on port 25 色々 sendmail ができる。一応 SunOS 4.1.4-JLE に元からあったものや、 関連ファイル などリストしておく。ファイルサイズも出しておけば、どれがどれだか分からなくなるこ とはないだろう。それと元の sendmail.cf の内容は、4.1.4-JLE も 4.1.2-JLE と変わっ ていないみたいだ。ひょっとして sendmail プログラムも同じかも知れん。 # ls -l /usr/lib/send* -r-sr-sr-x 1 root 557056 Apr 24 14:23 /usr/lib/sendmail -r-sr-x--x 1 root 155648 Feb 25 13:12 /usr/lib/sendmail.nis << NIS 対応。 -r-sr-x--x 1 root 172032 Mar 27 1995 /usr/lib/sendmail.mx << DNS 対応。 -r-sr-sr-x 1 root 573440 Mar 24 10:52 /usr/lib/sendmail.8.8.5 << -DNIS あり。 -r-sr-sr-x 1 root 565248 Mar 24 15:46 /usr/lib/sendmail.8.none << -DNIS なし。 -r--r--r-- 1 root 4912 Mar 24 15:55 /usr/lib/sendmail.hf -r--r--r-- 1 root 10660 Oct 15 1994 /usr/lib/sendmail.main.cf -r-------- 1 root 155648 Oct 15 1994 /usr/lib/sendmail.mx_CTC -r--r--r-- 1 root 8334 Oct 15 1994 /usr/lib/sendmail.subsidiary.cf -r-------- 1 root 139264 Oct 15 1994 /usr/lib/sendmail_CTC * popper のコンパイル ( SunOS 4.1.4-JLE ) SunOS 4.1.x-JLE をメ−ルサ−バとして使うとする。 このホストでは DNS を検索するた め NIS が稼働しているとする。 SunOS 4.1.x-JLE の場合、問題なくコンパイルできると タカを食っていたが、何のことはない、エラ−がでる。個々のコンパイルは問題なく通る が、最後のライブラリをくっつけるところで __res が未定義と出てしまう。多分 NIS の 関係で共有ライブラリが結合されないのなだと思った。一応伊藤忠のソリュ−ションデ− タベ−スをのぞいてみた。記事はなかった。「UNIX MAGAZINE」'95/03, "POP後編" に 山口英氏が解決方法を書いていた。これを知らなかったら一体どうやるんでしょうね。 # popper.taz # mv popper.taz popper.tar.Z # uncompress popper.tar.Z # tar xvf popper.tar # ls popper popper.tar # cd popper # make | cc -O -DBIND43 -DHAVE_VSPRINTF -target sun4 -c pop_init.c | cc -O -DBIND43 -DHAVE_VSPRINTF -target sun4 -c popper.c cc pop_dele.o ... popper.o -o popper ld: Undefined symbol __res << __res は pop_init.c の中で使われている。 *** Error code 2 make: Fatal error: Command failed for target `popper' [ Makefile の修正 ] Makefile ----------------------------------- | | |${TARGET}: ${OBJS} |#cc ${OBJS} -o ${TARGET} |cc ${OBJS} -o ${TARGET} -lresolv << これでリンクOK。 | | # make install install -c -m 700 -o root -g staff popper /usr/etc * popper のプログラム ( Apollo で取っておいたの ) $ ld Makefile README man_popper pop3.rfc1081 pop3e.rfc1082 popper/ popper.h popper.tar $ ld popper Makefile README pop3.rfc1081 pop3e.rfc1082 pop_dele.c pop_dropcopy.c pop_dropinfo.c pop_get_command.c pop_get_subcommand.c pop_init.c pop_last.c pop_list.c pop_log.c pop_lower.c pop_msg.c pop_parse.c pop_pass.c pop_quit.c pop_rset.c pop_send.c pop_stat.c pop_updt.c pop_user.c pop_xmit.c pop_xtnd.c popper popper.8 popper.c popper.h version.h Makefile 詰めて記載、参考に。 ---------------------------------------------------------- |#@(#)@(#)Makefile 2.5 2.5 4/3/91 |CSRCS = pop_dele.c pop_dropcopy.c pop_dropinfo.c \ | pop_get_command.c pop_get_subcommand.c pop_init.c \ | pop_last.c pop_list.c pop_log.c pop_lower.c \ | pop_msg.c pop_parse.c pop_pass.c pop_quit.c \ | pop_rset.c pop_send.c pop_stat.c pop_updt.c \ | pop_user.c pop_xtnd.c pop_xmit.c popper.c |OBJS = pop_dele.o pop_dropcopy.o pop_dropinfo.o \ | pop_get_command.o pop_get_subcommand.o pop_init.o \ | pop_last.o pop_list.o pop_log.o pop_lower.o \ | pop_msg.o pop_parse.o pop_pass.o pop_quit.o \ | pop_rset.o pop_send.o pop_stat.o pop_updt.o \ | pop_user.o pop_xtnd.o pop_xmit.o popper.o |DOCS = README pop3.rfc1081 pop3e.rfc1082 popper.8 |INCLUDES = popper.h version.h |SRCS = ${CSRCS} ${INCLUDES} |SCCS = /usr/ucb/sccs |REL = |MAKEFILE = Makefile |CFLAGS = -O -DBIND43 -DHAVE_VSPRINTF |TARGET = popper |TAR = ${TARGET}.tar |INSTALLDIR = /usr/etc |MANPAGE = popper.8 |CATPAGE = popper.0 |MANDIR = /usr/local/man/cat8 |${TARGET}: ${OBJS} | cc ${OBJS} -o ${TARGET} |tar: ${SRCS} ${DOCS} ${MAKEFILE} | rm -f ${TAR} *.Z* | tar -cvf ${TAR} ${SRCS} ${DOCS} ${MAKEFILE} | compress ${TAR} | uuencode ${TAR}.Z ${TAR}.Z > ${TAR}.Z.uuencoded | split -300 ${TAR}.Z.uuencoded | mv xaa ${TAR}.Z.uuencoded.xaa | mv xab ${TAR}.Z.uuencoded.xab | mv xac ${TAR}.Z.uuencoded.xac | mv xad ${TAR}.Z.uuencoded.xad | mv xae ${TAR}.Z.uuencoded.xae |clean: | rm -f core *.o *.Z* | ${SCCS} clean |install: ${TARGET} | install -c -m 700 -o root -g staff ${TARGET} ${INSTALLDIR} |installman: | rm -f ${CATPAGE} | nroff -man ${MANPAGE} > ${CATPAGE} | install -c -m 644 -o root -g staff ${CATPAGE} ${MANDIR} |edit: | ${SCCS} edit ${REL} ${SRCS} |admin: | ${SCCS} admin -ft"Copyright (c) 1990 Regents of the University of 続く |sources: ${SRCS} California.\n All rights reserved.\n" ${SRCS} |${SRCS}: | ${SCCS} get ${REL} $@ -p | expand -4 > $@ |${DOCS}: | ${SCCS} get README -p | expand -4 > README | ${SCCS} get popper.8 -p | expand -4 > popper.8 |${OBJS}: popper.h version.h (5) メ−ルのスプ−ルディレクトリの変更 '97/11/e * メ−ルのスプ−ルが一杯 現行メ−ルストアのメ−ルのスプ−ルディレクトリの実体は /var/spool/ である。 この /var の属するパ−ティションの容量は元々非常に少なかった。このため余裕のある /sun パ−ティションに spool というディレクトリを作成し、 その下にメ−ルのスプ−ルディ レクトリを設け、変更することにする。作業は東海インタ−ネットが点検のため、インタ −ネットが使えない日に行なった。まだメ−ルのユ−ザ数も30人程度と少なく、メ−ル の利用もぼちぼちで作業はすんなり済んだ。幸いなことに mqueue ディレクトリにも溜ま っているメ−ルはなかった。 << 現行の状態 >> << 変更後の状態 >> /usr/spool ---> /var/spool /var/spool/mail ---> /sun/spool/mail /var/spool/mqueue ---> /sun/spool/mqueue 現行メ−ルのスプ−ルディレクトリに実体は /var/spool/mail,mqueue になっている。こ の /var の属するパ−ティションの容量は非常に少ない。このため余裕のある /sun パ− ティションに spool というディレクトリを作成して、 その下に電子メ−ルのスプ−ルデ ィレクトリを設ける。とりあえず UID, GID は現行の状態のものを変更後にも付ける。 * 現行のマシンの状態 # df Filesystem kbytes used avail capacity Mounted on /dev/sd0a 15487 10272 3667 74% / << 全部で約15 MB。 /dev/sd0g 148887 126077 7922 94% /usr 有効領域3MB強。 /dev/sd0h 193591 144280 29952 83% /home /dev/sd2g 471326 299480 124714 71% /sun # cd /sun; ls ここが結構あいていた。 @catis SPARCprinter etc.tar lang old CF-3.5Wb3 SunSolve freesoft lost+found openware CF-3.5Wb3.tar demo ioffice newsprint tmp # cd /usr; ls -al lrwxrwxrwx 1 root 10 Aug 22 1996 adm -> ../var/adm drwxr-sr-x 3 root 4608 Aug 22 1996 bin lrwxrwxrwx 1 root 10 Aug 22 1996 boot -> ./kvm/boot lrwxrwxrwx 1 root 12 Aug 22 1996 spool -> ../var/spool lrwxrwxrwx 1 root 10 Aug 22 1996 tmp -> ../var/tmp # ls -lg /usr/spool lrwxrwxrwx 1 root wheel 12 Aug 22 1996 /usr/spool -> ../var/spool # cd /var/spool; ls -lg drwxr-sr-x 4 root 10 512 Oct 18 15:53 cron drwxr-xr-x 2 daemon daemon 512 Jan 2 1992 licenses drwxr-sr-x 2 uucp uucp 512 Oct 15 1994 locks drwxrwsr-x 2 daemon daemon 512 Oct 15 1994 lpd -rw-r--r-- 1 root 10 4 Oct 18 15:53 lpd.lock drwxrwsrwx 2 root 10 512 Aug 22 1996 ls drwxrwsrwt 2 root 10 1024 Nov 24 13:24 mail drwxr-s--- 2 root 10 512 Nov 24 10:48 mqueue drwxr-sr-x 2 root 10 512 Oct 15 1994 rwho drwxrwsrwx 2 bin bin 512 Oct 15 1994 secretmail drwxr-sr-x 10 uucp uucp 512 Oct 18 15:53 uucp drwxrwsrwt 2 uucp uucp 512 Oct 15 1994 uucppublic # grep full /var/adm/messages 注.メ−ルのスプ−ル領域が Jun 6 12:47:06 taro vmunix: /: file system full ル−ト"/" の /dev/sd0a Jun 6 12:47:08 taro last message repeated 4 times で、元々非常に少なかっ Jun 6 12:47:08 taro vmunix: /: file system full た。"/" ファイルシステ Jun 6 12:47:09 taro vmunix: /: file system full ムの領域が一杯になった Jun 6 12:47:10 taro vmunix: /: file system full と警告が出ている。 | # ls -lg /var/spool/mail -rw------- 1 khiro staff 0 Nov 24 1997 .khiro.pop -rw------- 1 hisobe staff 0 May 26 1997 .hisobe.pop -rw------- 1 khiro staff 0 Nov 24 1997 khiro -rw------- 1 hisobe staff 0 May 26 1997 hisobe # ls -l /var/spool/mqueue 注.mail, mqueue とも中味が全部0だったら、 下記で中 total 0 味はコピ−しなくてもいい。新しいディレクトリさえ 用意すればいい。 * 余裕のある新しいディレクトリにする # cd /sun; mkdir spool # ls -lg drwxr-xr-x 4 root daemon 512 Apr 8 12:43 spool # cd spool # cp -rp /usr/spool/mail mail << /sun/spool/mail に中味ごとコピ−する。 # cp -rp /usr/spool/mqueue mqueue /sun/spool/mail, mqueue である。 # ls -lg ↓ drwxrwsrwt 2 root daemon 1024 Apr 8 12:41 mail drwxr-s--- 2 root daemon 512 Jan 23 1998 mqueue # cd /var/spool # mv mail tmp_mail << 一応前のをコピ−しておく。 # mv mqueue tmp_mqueue # ln -s /sun/spool/mail /var/spool/mail << シンボリックリンクを張る。 # ln -s /sun/spool/mqueue /var/spool/mqueue # ls -lg << 関係するとこだけ表示した。 lrwxrwxrwx 1 root daemon 16 Apr 8 12:53 mail -> /sun/spool/mail lrwxrwxrwx 1 root daemon 18 Apr 8 12:53 mqueue -> /sun/spool/mqueue drwxrwsrwt 2 root 10 1024 Nov 24 1997 tmp_mail drwxr-s--- 2 root 10 512 Jan 23 1998 tmp_mqueue * 元のメ−ルスプ−ルに戻すには # cd /var/spool # rm mail mqueue << これでリンクを解消する。/sun/spool/mail, mqueue のファイ ルはそのままである。適当に消去すること。 # mv tmp_mail mail # mv tmp_mqueue mqueue ------------------------------------------------------------------------------------ [ 付録 ] いろいろ ● Sun OS 4.1.x のユ−ザ環境設定ファイル $ cat /home/~user/.cshrc set path=(. \ /bin \ /etc \ /usr/openware/bin \ /usr/local/bin \ /usr/ucb \ /home/taro/com \ /home/taro/shibata \ /sun/newsprint/bin \ /sun/lang/f77 \ /sun/lang/c++/SC1.0 \ ) setenv XENVIRONMENT /nee/N/PB.res setenv XMJPAPPCODE EUC setenv XFILESEARCHPATH "/usr/openware/lib/X11/%T/%N%S" setenv UIDPATH "/usr/openware/vje-x/uid/%U%S:%U%S" set history=50 set ignoreeof set prompt="<`whoami`> " stty cs8 -parenb -istrip alias hi 'history' alias print 'pr \!* | lpr' alias la 'ls -a' alias ll 'ls -l' alias lf 'ls -F' alias lc 'ls *.c' alias lo 'logout' alias dir 'echo ""; echo " Directory "$cwd; echo ""' alias total 'echo ""; echo " total "`ls|wc -l`' alias d 'dir; ls -F; total' alias ndc ncad_data_contrl $ cat /home/~user/.login setenv PRINTER lp setenv LD_LIBRARY_PATH /usr/openware/lib:/usr/lib setenv LANG japanese setenv OPENWAREHOME /usr/openware setenv MANPATH /usr/openware/man:/usr/man:/sun/option/f77/man setenv FONTSERVER taro:7000 setenv XENVIRONMENT /nee/N/PB.res $ cat /home/~user/.Xdefaults OpenWindows.SelectDisplaysMenu: False OpenWindows.WindowColor: #cccccc OpenWindows.DragRightDistance: 100 OpenWindows.WorkspaceColor: #40a0c0 OpenWindows.MultiClickTimeout: 4 OpenWindows.IconLocation: bottom OpenWindows.Beep: always OpenWindows.SetInput: select OpenWindows.ScrollbarPlacement: right OpenWindows.PopupJumpCursor: True XTerm*foreground: black XTerm*background: white XTerm*cursorColor: red XTerm*loginShell: on XTerm*scrollBar: true XTerm*reverseVideo: true XTerm*VT100*geometry: 80x20 ATerm*foreground: black ATerm*background: white ATerm*cursorColor: blue ATerm*VT100*geometry: 80x30 ATerm*font: 7x14bold ATerm*kanjiFont: k14 ATerm*kanaFont: rk14 ATerm*pointerColor: deepskyblue XLoad*foreground: lightskyblue XLoad*background: salmon Mwm*buttonBindings: DefaultButtonBindings Mwm*Kinput.clientDecoration: None Mwm*InputServer.clientDecoration: None Mwm*vjeTransient.clientDecoration: None Mwm*keyBindings: DefaultKeyBindings Mwm*keyboardFocusPolicy: pointer Mwm*windowMenu: DefaultWindowMenu Scrollbar.JumpCursor: True *basicLocale: japanese *displayLang: japanese *inputLang: japanese *numeric: japanese *timeFormat: japanese ● SPARCprinter の設定のこと # lpq SPARCprinter is ready and printing Rank Owner Job Files Total Size active katou 212 (standard input) 1013 bytes # ps -ax PID TT STAT TIME COMMAND 0 ? D 0:00 swapper 1 ? IW 0:00 /sbin/init - 2 ? D 0:00 pagedaemon 55 ? I 0:00 portmap 60 ? S 0:01 ypserv 62 ? IW 0:00 ypbind 64 ? IW 0:00 keyserv 74 ? S 0:00 in.routed 77 ? IW 0:00 in.named 89 ? S 0:00 syslogd 97 ? IW 0:00 /usr/lib/sendmail -bd -q1h 98 ? Z 0:00 106 ? IW 0:00 /usr/etc/cesd 108 ? S 0:00 /usr/etc/ccv -f 116 ? S 0:00 /usr/etc/kkcv -f 140 ? IW 0:00 /sun/SunSolve/bin/rpc.solved 145 ? I 0:00 update 148 ? IW 0:00 cron 153 ? S 0:00 inetd 156 ? I 0:00 /usr/lib/lpd 163 ? I 0:00 /usr/lib/lpd 164 ? T 0:00 /bin/sh /sun/newsprint/lpd/of -w132 -l66 172 ? Z 0:00 173 ? S 0:00 /bin/sh /sun/newsprint/lpd/if -w132 -l66 -i0 -n katou -h node_2bbbb 179 ? S 0:00 pl --r :rev -b -T /tmp :separator -b :npcomm 180 ? S 0:00 /bin/sh /sun/newsprint/printer_classes/SPARCprinter/C/ps/npcomm.T 187 ? R 0:09 /sun/newsprint/small_openwin/bin/xnews -nodev -cubesize large 200 ? S 0:00 in.telnetd 226 ? S 0:00 /sun/newsprint/printer_classes/SPARCprinter/bin/engine_ctl_SPARCpri 227 ? S 0:00 np_filter 162 co I 0:00 - cons8 console (getty) 201 p0 S 0:00 -csh (csh) 228 p0 R 0:00 ps -ax # /sun/newsprint/lpd lrwxrwxrwx 1 root 10 Jan 2 1992 cf -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 df -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 gf -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 if -> lpd_script -rwxr-xr-x 1 root 7096 Dec 8 18:09 lpd_script -rwxr-xr-x 1 root 7095 Dec 8 18:08 lpd_script.org lrwxrwxrwx 1 root 10 Jan 2 1992 nf -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 of -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 rf -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 tf -> lpd_script lrwxrwxrwx 1 root 10 Jan 2 1992 vf -> lpd_script /var/spool/l* スプーリングに用いられるディレクトリ。 /var/spool/l*/cf* デーモンの制御ファイル。 /var/spool/l*/df* `cf' ファイルに指定されているデータファイル。 /var/spool/l*/tf* `cf' ファイルの一時的なコピー。 # cd /sun/SPARCprinter;ls .param .pgcnt 0 acct errsa00229 log status .param.org .seq 1 errsa00166 lock socket /sun/newsprint/lpd/cf << 何か変更したらしいが不明。 /sun/SPARCprinter/.param ---------------------------- | | |DEFRES=300; export DEFRES << これも何か変更したらしい。 | | # cat .param # # @(#)SPARCprinter_param 1.2 91/09/28 # Copyright 1990 Sun Microsystems, Inc. # # This file describes a generic NeWSPrint printer configuration. # # All the macros should be correctly defined # except BANNERPS, TRAILERPS and HANDLERPS # which can be commented out. # # BANNERPS defines an optional header # TRAILERPS defines an optional trailer # HANDLERPS defines an alternative PostScript error-handler # OPENWINHOME, NPHOME, SPOOLDIR, LOGFILE, CANVASDIR, and PRINTCAPNAME # are set by the printer configuration script, add_${PRINTERNAME}_printer # DEBUGSCRIPTS=yes; export DEBUGSCRIPTS; if [ $DEBUGSCRIPTS ]; then set -x fi OPENWINHOME=/sun/newsprint/small_openwin; export OPENWINHOME XNEWSPARAMS=" -nodev -cubesize large"; export XNEWSPARAMS # DEFAULTJOBTIMEOUT defines in seconds how long the handler # will wait for an error condition to be cleared before exiting. # zero means the handler waits forever. DEFAULTJOBTIMEOUT=0; export DEFAULTJOBTIMEOUT # npcomm uses this to decide how long to wait for the # xnews server to come up TIMEOUT=180; export TIMEOUT # NPTMP is the temporary directory for work files. It is currently used in # lpd_script (by rev). This variable is not yet user configurable. NPTMP="/tmp"; export NPTMP # NICEVAL is the nice value used for all np processes. It is currently used in # lpd_script (by rev). This variable is not yet user configurable. NICEVAL=0; export NICEVAL NPHOME=/sun/newsprint; export NPHOME # printer spooling directory and error log file SPOOLDIR=/var/spool/SPARCprinter; export SPOOLDIR LOGFILE=$SPOOLDIR/log; export LOGFILE # font license install uses this variable to decide # whether or not the printer uses font licenses. PRINTERID=NeWSprint; export PRINTERID # prt.ps and .user.ps use PWD -- I have no idea why PWD=$SPOOLDIR; export PWD # double buffereing # If there is more than 1 local printer hanging off a host, CANCNT # should probably be set to 1 CANCNT=2; export CANCNT # The directory where we write the image # should have CANCNT x (printer max page size) free CANVASDIR=/var/spool/SPARCprinter; export CANVASDIR # if you print face up, set to -b to get pages in correct reading order. # if you print face down, set to -f to get pages in correct reading order. STACKORDER=-b; export STACKORDER # primary printcap printer name PRINTCAPNAME=SPARCprinter; export PRINTCAPNAME PRINTERNAME=SPARCprinter; export PRINTERNAME # PL hierarchy where printer class filters are found - e.g., npcomm.T CLASSFILTERS=$NPHOME/printer_classes/$PRINTERNAME; export CLASSFILTERS # Set the locale NP_LOCALE=japanese; export NP_LOCALE #PL hierarchy where filters for a specific printer are found SPECIFICFILTERS=; export SPECIFICFILTERS PL_PATH="$SPECIFICFILTERS:$CLASSFILTERS:$NPHOME/pl.$ARCH"; export PL_PATH #printer engine handler HANDLERNAME=engine_ctl_$PRINTERNAME; export HANDLERNAME # printer description file PRINTERDESCRIP=descrip_$PRINTERNAME.ps; export PRINTERDESCRIP # handler I18N (international) message path & file I18N_MSGPATH=$NPHOME/lib/msgs I18N_MSGFILE=${PRINTERNAME}_i18n_handler BADJOBPS=badjob.ps; export BADJOBPS # default banner page file DEFBANNER="separator.ps banner.ps" export DEFBANNER # Job break pages -- BANNERPS: if you print face up, it's the last page printed # TRAILERPS: if you print face up, it's the first page printed BANNERPS=; export BANNERPS TRAILERPS=; export TRAILERPS ERRORPS="separator.ps errorprint.ps" export ERRORPS # alternative postscript error handler HANDLERPS=; export HANDLERPS # default printer resolution - zebra can have 400 or 300 DEFRES=300; export DEFRES #NeWSprint version NPVERSION=`$NPHOME/bin/np_version -s`; export NPVERSION # If CLRDEVNAME is set, the engine handler will use it to clear # the memory buffer. **NOTE** The parallel port must be free (nothing # attached like a printer) for this to work #CLRDEVNAME=XCLRDEVNAMEX; export CLRDEVNAME # Not setting this guy for now CLRDEVNAME=; export CLRDEVNAME # memory cache size (kbytes) for fonts FONTMEMSIZE=1200; export FONTMEMSIZE # set FONTPATH for loadfontencodings.ps & np_filter FONTPATH=$OPENWINHOME/lib/fonts; export FONTPATH # If PRINTJOBLOG is defined as yes, any data sent to the log file for # a job will also be printed PRINTJOBLOG=yes; export PRINTJOBLOG