Задание от заказчика пришло в письменном виде и выглядит примерно так, уточнить детали нет возможности, понимай как хочешь как говорится.
Вот оно:
Задача
Написать сервис и init скрипт, делающий скриншоты экранов пользователей через произвольные индивидуальные промежутки времени.
Частота создания снимков задается в конфигурационном файле отдельно для каждого пользователя. Также в конфигурационном файле должна задаваться периодичность по-умолчанию. Выбор утилиты для снятия скриншотов не принципиален, выбирайте любую известную.
Пример конфигурационного файла
Пример конфигурационного файла /etc/sysconfig/scrdump
STORAGE="/var/screendumps" #каталог, куда складывать скриншоты
USERS=( user1 user2 user3 ) #имена пользователей
DUMP_INTEVAL=10 #по-умолчанию каждые 10 секунд делать скриншот
user1_INTERVAL=15 #для пользователя user1 делать скриншот каждые 15 секунд
Дополнтельные условия
Плюсом при решении данной задачи будет являться выполнения следующих условий (чем больше, тем лучше):
* проверка корректности выполнения операций и возврат ошибок на всех стадиях
* доп. аргумент 'status' выдающий информацию о состоянии скрипта и его настройках
* Любые улучшения и предложения к решению поставленной задачи.
___________________________________________
Сам я в bash новичок но вот что сделано, написан примерный скелет скрипта:
Код: Выделить всё
#!/bin/bash
case $1 in
start)
daemon --name=test /home/dndwarf/test.sh work
;;
work)
scrot $m /home/dndwarf/1.jpg
#### тут должен быть цикл и промежуток между скриншотами задается коммандой sleep, ну а имя файла генерарурется как-нить, например по date.
;;
stop)
daemon --stop --name=test
;;
status)
daemon --running --verbose --name=test
;;
*)
echo mda
;;
esac
Вариант 2, скрипт стартует с системой, отлавливает кто сейчас подключен и делает скрины их терминалов. Программку, которая делает скрины по номеру дисплея я нашел, X сессии находятся путем `pidof X`, а вот дальше вопрос, как правильно найти пользователя кто работает в этом конкретном дисплее. Например X всегда запускаются от рута. Если это нулевой дисплей который стартует с системой то он запускается путем запуска gdm, единственный способ отследить который я нашел это отслеживать кто работает сейчас в tty7 (по умолчанию нулевой дисплей там грузится). А вот что делать если пользователь перешел на другой терминал, к примеру tty2, там залогинился и оттуда уже запустил gnome-session.
В общем любой помощи буду благодарен, заранее спасибо.