zakazany cron a at...

Martin Mačok martin.macok na underground.cz
Pondělí Květen 14 08:20:35 CEST 2001


On Mon, May 14, 2001 at 05:46:45AM +0200, James wrote:
> potrebuju aby se spustil automaticky urcity proces po startu stroje...
> Mam tam normalni uzivatelsky shell account a je tam zakazany
> crontab a at....
  (to vypada skoro jako u mne ;-))

Zkuste si ten program sikovne(*) pripsat treba do ~/.forward nebo
~/.procmailrc a dane konto si nechte odnekud jinud posilat pravidelne
(treba 1x za hodinu) pomoci crontabu nejaky email.

(*) tak, aby vam neprestala chodit posta. A nejlepe nejak tak, ze si
nejaky skript otestuje, zda ten program uz bezi, a pokud ne, tak ho
spusti (pokud ano, tak nic nedela). Inspirovat se muzete na redhat
napr. v /etc/rc.d/init.d/functions, anebo skriptem, ktery prikladam.

On Mon, May 14, 2001 at 06:28:36AM +0200, Daniel Prynych wrote:
> Umistete prikaz pro start programu ktery potrebujete spustit do
> /etc/rc.d/rc.local

Kdyz ten uzivatel nesmi pouzivat crontab a nema prava roota, tak si
asi tezko pripise neco do rc.local. Ctete otazky pecliveji :)

Anebo jste myslel, ze se ten uzivatel ma do stroje naborit, ziskat
prava roota a pripsat si to tam? ;-) Taky reseni ...

-- 
   Martin Mačok
  underground.cz
    openbsd.cz
------------- další část ---------------
#!/usr/local/bin/bash

PROGPATH=/home/macok/seti
PROGCMD=./setiathome
PROGOPT="-nice 20 -verbose"
PROGOUT=LOG
PROGLOCK=$PROGPATH/running
DELAY=30
INITDELAY=3
RUNNING=false
VERBOSE=false
MAXUSERS=0

function PROGSTART () { 
if mkdir $PROGLOCK 2>/dev/null; then
	cd $PROGPATH
	$VERBOSE && echo "Starting $PROGCMD $PROGOPT"
	$PROGCMD $PROGOPT >$PROGOUT &
	PROGPID=$!
	touch $PROGLOCK/$PROGPID
fi 
}

function PROGSTOP () { 
if [ -d $PROGLOCK ] ; then
	PROGPID=`ls $PROGLOCK`
	if rm $PROGLOCK/$PROGPID ; then
		rmdir $PROGLOCK 
		kill -HUP $PROGPID
		$VERBOSE && echo "Stopping $PROGCMD $PROGOPT"
		kill $PROGPID
	fi
fi 
}

while true ; do
	if expr `w -h|grep -v macok|wc -l` = $MAXUSERS >/dev/null 2>&1; then
#	if expr `w -h|wc -l` = $MAXUSERS ; then
		PROGSTART
	else
		PROGSTOP
	fi
	sleep $DELAY
done


Další informace o konferenci Linux