Читаем Linux-сервер своими руками полностью

Естественно, все компьютеры сети будут X-терминалами вашего сервера. Настройка X-терминала обсуждалась в гл. 20. При настройке руководствуйтесь такими правилами. Имя пользователя должно совпадать с именем рабочей станции. Например, если имя рабочей станции game1, то на этой станции должен быть зарегистрирован пользователь game1. На сервере должны быть зарегистрированы все пользователи: game1, game2, …, gameN. Пароли установите по своему усмотрению, но пароли пользователей на сервере и на рабочих станциях тоже должны совпадать. Все это необходимо для регистрации пользователя на сервере. Если настройка Х-терминала показалась вам слишком сложной, сейчас рассмотрим более простой путь. В гл. 20 рассматривалась настройка «чистого» X-терминала, то есть загрузка X-терминала осуществлялась по сети, а на самом компьютере даже не был установлен жесткий диск. Сейчас же мы попытаемся настроить «условный» X-терминал. Почему условный? Операционная система будет устанавливаться на компьютеры посетителей как обычно, вместе с системой X Window. Затем в файле /etc/inittab вы заменяете строку:

X:123456:respawn:/usr/bin/X11/X

на строку:

X:123456:respawn:/usr/bin/X11/X –query 192.168.0.1

Данная команда (X –query 192.168.0.1) обеспечивает загрузку системы X по умолчанию (уровень выполнения 5) и при этом будет использоваться сервер X с IP-адресом 192.168.0.1. Не сложно догадаться, что компьютер с таким адресом — это и есть ваш сервер. Настройку сервера терминалов выполните так, как описано в гл. 20. При этом на сервере и клиенте желательно установить одну и ту же версию системы X Window.

Если на всех компьютерах установлено одно и то же оборудование, а в большинстве случаев это так, поступите таким образом: настройте систему X Window только на сервере, а затем обеспечьте доступ по NFS клиентам к файлам системы X Window. В этом случае на компьютере клиента вообще не нужно устанавливать систему X Window, а запускать ее непосредственно с сервера по сети, используя NFS. Настройка сетевой файловой системы (NFS) обсуждалась в гл. 8. Я рекомендую использовать именно второй способ. Запуск игр тоже можно осуществлять по сети, предварительно расположив их в каталоге, доступному по NFS. Естественно, для запуска и нормальной работы игр по сети нужна сеть, обеспечивающая скорость передачи данных 100 Мбит/с. Концентраторы (hub) в данной сети лучше заменить коммутаторами (switch).

Теперь перейдем к написанию самой программы. Данную программу мы напишем, используя «подручные» средства: стандартные программы Linux и командный язык интерпретатора shell. Во-первых, командный язык интерпретатора bash уже рассмотрен в этой книге. Во-вторых, если написать эту программу на С или Pascal, то читатель должен владеть данным языком программирования, что усложнит чтение книги.

Просмотреть всех зарегистрированных в системе пользователей можно с помощью команды w (рис. 21.13).

Рис. 21.13. Команда w

С помощью данной команды можно выяснить, сколько времени работает пользователь, использование процессора пользователем, какая программа выполняется в данный момент, а также общую загрузку системы (load average). Кроме другой полезной информации, команда w сообщает нам с какой машины произошла регистрация пользователя в нашей системе. Будем рассматривать случай, когда имя пользователя будет совпадать с именем машины, что впоследствии значительно упростит вам администрирование залом.

Вывести все процессы, которые принадлежат пользователю, можно с помощью команды:

ps --user username

На рис. 21.14. показаны процессы, принадлежащие пользователю root.

Рис. 21.14. Процессы, принадлежащие пользователю root

Теперь рассмотрим исходный текст этой программы.

Листинг 21.2. Программа newclient

#!/bin/bash

#  Управление игровым залом — добавление нового клиента

#  Распространяется по лицензии GPL

# (с) 2002 Denis Kolisnichenko, [email protected]

#  Шрифт для отображения сообщения

FONT="-cronyx-fixed-*-*-*-*-*-*-*-*-*-*-koi8-r"

# Размеры окна

GM="700x70"

# Сообщение

MSG="Ваше время вышло. В течение 5 минут вы можете оплатить дополнительное время"

if [ $# –It 4 ] ; then

 { echo "Usage: newclient warntime time user num";

 exit 1;

 }

fi;

# Спим

sleep $1

# Отображаем предупреждение, поскольку время warntime вышло

xmessage –display server:$4 –fn $FONT –geometry $GM –bg black –fg green $MSG

sleep $2

Перейти на страницу:

Все книги серии Секреты мастерства

Похожие книги