jkight@sinai.umd.edu (Jeff Kight) (12/21/90)
I received numerous responses for my dimlogin script so...
Following is the script/executable that I use to see if anyone is
logged onto the console, and if not...dim it
There is an example crontab entry for executing dimlogin every 15 minutes
Note: the code that actually dims the screen was hacked from bright.c
by John W.Garnett.
------------------------------------------------------------------------------
Jeff Kight jkight@umd5.umd.edu
Information Services jkight@umdd.bitnet
Computer Science Center uunet!umd5.umd.edu!jkight
University of Maryland (301) 405-3014
------------------------------------------------------------------------------
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# dimlogin
# dim.c
# makefile
# This archive created: Wed Dec 19 15:28:38 1990
export PATH; PATH=/bin:$PATH
if test -f 'dimlogin'
then
echo shar: will not over-write existing file "'dimlogin'"
else
cat << \SHAR_EOF > 'dimlogin'
#!/bin/csh -F
#
# dimlogin: by Jeff Kight jkight@umd5.umd.edu / jkight@umdd.bitnet
#
# general usage: executed by root (root owns /dev/evs0)
#
# example usage: executed by cron
#
# sample crontab entry: 0,15,30,45 * * * * root /usr/local/adm/dimlogin
#
# purpose: checks for process Console Daemon, if not found, dim screen to 0
#
# note: for current scripts, install dimlogin in /usr/local/adm and
# dim in /usr/locbal/bin
#
# disclaimer: use at your own risk
#
set pflag=`ps -aux | awk 'BEGIN { flag="false" } /Console Daemon/ && $0 !~ /- k/ { flag="true" } END { print flag }'`
if ($pflag == 'false') then
/usr/local/bin/dim 0
endif
SHAR_EOF
chmod +x 'dimlogin'
fi # end of overwriting check
if test -f 'dim.c'
then
echo shar: will not over-write existing file "'dim.c'"
else
cat << \SHAR_EOF > 'dim.c'
/*
dim.c: hacked from bright.c by John W.Garnett
features removed: return to previous brightness setting after return
general usage: dim [0-61]
example usage: dim 52
purpose: sets the screen to desired brightness
compile using: cc bright.c -o dim
relevant manual pages: evs and ioctl
disclaimer: no claims are made as to the suitability of this software for
any purpose. use at your own risk.
*/
#include <stdio.h>
#include <sys/fcntl.h>
#include <sys/ioctl.h>
#include <nextdev/evsio.h>
#define EVS_DEVICE "/dev/evs0"
/* open the event status device (see man page for evs) */
int openEvs()
{
int fd;
fd = open(EVS_DEVICE,O_RDWR,0660);
if (fd < 0) {
fprintf(stderr,"error: couldn't open %s\n",EVS_DEVICE);
exit(2);
}
return(fd);
}
/* set brightness to level */
int setBrightness(level)
unsigned long level;
{
int fd;
fd = openEvs();
ioctl(fd,EVSIOSB,&level);
close(fd);
}
int main(argc,argv)
int argc;
char **argv;
{
unsigned long request;
if (argc != 2) {
fprintf(stderr,"usage: %s [0-61]\n",argv[0]);
exit(1);
}
sscanf(argv[1],"%lu",&request);
setBrightness(request);
return(0);
}
SHAR_EOF
fi # end of overwriting check
if test -f 'makefile'
then
echo shar: will not over-write existing file "'makefile'"
else
cat << \SHAR_EOF > 'makefile'
dim: dim.o
cc dim.o -o dim
dim.shar: dimlogin dim.c makefile
shar dimlogin dim.c makefile > dimlogin.shar
all: dim dim.shar
SHAR_EOF
fi # end of overwriting check
# End of shell archive
exit 0