Üdv!
Már keresgéltem, és jópár manualt is megnéztem. De nem találtam a megoldást. Vagy csak nem voltam elég kitartó!
A helyzet a következő: Debian Sarge rendszerre forrásból telepítettem fel a squid-et. És szeretnék az /etc/init.d -be egy indító scriptet létrehozni, hogy a squid daemonként induljon. Ez süsü alatt nem volt gond, csak átirtam az ATD-t (ATD_BIN="/usr/local/squid/sbin/squid -D"), és elmentettem squid néven. Itt viszont nem boldogulok az atd-vel. Feltehettem volna apt-get-el is, de így legalább tudom mi hol van!
Esetleg valaki tud segíteni?
- 1317 megtekintés
Hozzászólások
/etc/init.d/skeleton a kiindulasi pont.
Amugy szerintem jobban jarsz a debian csomaggal, mint a sajat forditasuval, legalabbis ha egy init script gondot okoz, akkor sokkal tobb gondod lehet a sajat forditasu squid-del kesobb...
- A hozzászóláshoz be kell jelentkezni
skeleton megvan! Akkor debi-ben nem atd-t kell babrálni, rendben!
Egyébként eddig süsü-t használtunk suliban is, és ott nem volt gond a forrásból telepített squid bekonfigurálásával! Most nem is a squid használatával van gondom, hanem szegényt debi alatt init scriptel való elindításával.
Esetleg egy példával fel tudnád vázolni hogy mit kell átirosgálni?
- A hozzászóláshoz be kell jelentkezni
én is a csomagból telepítést javaslom, kivéve persze ha valami konkrétan hiányzik neked belőle (azért ezen meglepődnék)
a debian -D -sYC kapcsolókkal indítja amúgy
az induljon pedig rövid u :)
- A hozzászóláshoz be kell jelentkezni
Remek, helyesírási hiba kijavítva:)
Ha esetleg van valakinek squid init scriptje, akkor be is másolhatja ide nyugodtan...!
- A hozzászóláshoz be kell jelentkezni
én is teljesen értelmetlennek látom a dolgot, mi az, h így legalább tudod, h mi hol van?
a csomagból is teljesen egyértelmüen kideríthető és mellesleg egyébként is nagyon jól struktúráltan van minden elosztva...
amúgy itt van:
#! /bin/sh
#
# squid Startup script for the SQUID HTTP proxy-cache.
#
# Version: @(#)squid.rc 2.20 01-Oct-2001 miquels@cistron.nl
#
NAME=squid
DAEMON=/usr/sbin/squid
LIB=/usr/lib/squid
PIDFILE=/var/run/$NAME.pid
SQUID_ARGS="-D -sYC"
[ ! -f /etc/default/squid ] || . /etc/default/squid
PATH=/bin:/usr/bin:/sbin:/usr/sbin
[ -x $DAEMON ] || exit 0
grepconf () {
w=" " # space tab
sq=/etc/squid/squid.conf
# sed is cool.
res=`sed -ne '
s/^'$1'['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $sq`
[ -n "$res" ] || res=$2
echo "$res"
}
grepconf2 () {
w=" " # space tab
sq=/etc/squid/$NAME.conf
# sed is cool.
res=`sed -ne '
s/^'$1'['"$w"']\+[^'"$w"']\+['"$w"']\+\([^'"$w"']\+\).*$/\1/p;
t end;
d;
:end q' < $sq`
[ -n "$res" ] || res=$2
echo "$res"
}
#
# Try to increase the # of filedescriptors we can open.
#
maxfds () {
[ -n "$SQUID_MAXFD" ] || return
[ -f /proc/sys/fs/file-max ] || return 0
[ $SQUID_MAXFD -le 4096 ] || SQUID_MAXFD=4096
global_file_max=`cat /proc/sys/fs/file-max`
minimal_file_max=$(($SQUID_MAXFD + 4096))
if [ "$global_file_max" -lt $minimal_file_max ]
then
echo $minimal_file_max > /proc/sys/fs/file-max
fi
ulimit -n $SQUID_MAXFD
}
fixperms () {
dir=$1
usr=$2
grp=$3
currusr=`/usr/bin/stat -c '%U' $dir`
currgrp=`/usr/bin/stat -c '%G' $dir`
if [ $currusr != $usr ]
then
chown $usr $dir -R
fi
if [ $currgrp != $grp ]
then
chgrp $grp $dir -R
fi
}
start () {
cdr=`grepconf2 cache_dir /var/spool/$NAME`
usr=`grepconf cache_effective_user proxy`
grp=`grepconf cache_effective_group proxy`
case "$cdr" in
[0-9]*)
echo "squid: squid.conf contains 2.2.5 syntax - not starting!" >&2
exit 1
;;
esac
#
# Create spool dirs if they don't exist.
#
if [ -d "$cdr" -a ! -d "$cdr/00" ]
then
echo "Creating squid spool directory structure"
/usr/sbin/squid -z
fi
if [ "$CHUID" = "" ]; then
CHUID=root
fi
maxfds
umask 027
cd $cdr
start-stop-daemon --quiet --start \
--pidfile $PIDFILE \
--chuid $CHUID \
--exec $DAEMON -- $SQUID_ARGS < /dev/null
sleep 1
}
stop () {
PID=`cat $PIDFILE 2>/dev/null`
start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $DAEMON
#
# Now we have to wait until squid has _really_ stopped.
#
sleep 2
if test -n "$PID" && kill -0 $PID 2>/dev/null
then
echo -n "(waiting..."
cnt=0
while kill -0 $PID 2>/dev/null
do
cnt=`expr $cnt + 1`
if [ $cnt -gt 60 ]
then
#
# Waited 120 seconds now. Fail.
#
echo -n "failed)"
if [ "$1" = verbose ] ; then
echo "."
else
echo -n " "
fi
return
fi
sleep 2
echo -n "."
done
echo -n "done)"
if [ "$1" = verbose ] ; then
echo " $NAME."
else
echo -n " "
fi
else
[ "$1" = verbose ] && echo "$NAME."
fi
}
case "$1" in
start)
echo -n "Starting proxy server: "
start
echo "$NAME."
;;
stop)
echo -n "Stopping proxy server: "
stop verbose
;;
reload|force-reload)
echo -n "Reloading $NAME configuration files..."
start-stop-daemon --stop --signal 1 \
--pidfile $PIDFILE --quiet --exec $DAEMON
echo "done."
;;
restart)
echo -n "Restarting proxy server: "
stop
start
echo "$NAME."
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|reload|force-reload|restart}"
exit 3
;;
esac
exit 0
szerk:
ezt mondjuk úgy is kinyerheted ha már annyira saját magad szeretnéd, h apt-vel csak letölteted a csomagot, aztán a /var/cache/apt/archives alatt fogod, pl mc -vel belemész és kimásolod....
- A hozzászóláshoz be kell jelentkezni
Menetközben én is rájöttem a trükkre. Köszi!
Érdemesebb lesz apt-get el.
Sajna ez nevelési probléma. Forrásra szokatot minket a tanár!:)
De suse alatt tényleg könnyebb volt mindent megtalálni ha forrásból pakoltunk! és ugyanúgy működött mintha csomagból tettük volna fel.
Ez van! Azért thx:)
- A hozzászóláshoz be kell jelentkezni
Nem igazán hagyott nyugodni a probléma.:P
És itt egy nagyon egyszerű megoldás:
Csinálunk egy fájlt az /etc/init.d/-be az alábbi tartalommal:
#! /bin/sh
/usr/local/squid/sbin/squid -D -sYC -f /etc/squid/squid.conf
Ezt elmentjük S"szám""valami" néven. Itt a szám egy szabad sorszámot jelöl az rc2.d-től rc5.d -ig. Meg kell nézegetni. Utána bármilyen nevet beírhatunk. Jelen esetben legyen squid. Nálam ez így néz ki: S22squid. Erre kiadunk egy chmod +x S22squid parancsot. Ha ezekkel megvagyunk, akkor a fentebb említett helyek mindegyikébe (rc2.d,rc3.d,rc4.d,rc5.d) csinálunk egy szimlinket:
ln -s /etc/init.d/S22squid S22squid
Ha ez készen van, akkor egy reboot, és a squid is indulni fog automatikusan. ps ax | grep squid paranccsal ellenőrizhetjük.
Nekem működik!
- A hozzászóláshoz be kell jelentkezni
Hat, remelem, ez alapjan senki sem fog init scriptet irni. Pl. hol a stop, start, esetleg reload, restart??? Nem veletlenul irtam a skeleton-t, abbol lenne meg mit tanulnod. A szam nem kell hogy egyedi legyen, a lenyeg, hogy pl. a halozat mar fel legyen huzva es esetedben az /usr/local mar mount-olva legyen az inditaskor, leallitaskor (mert az sem art, Kxx minimum a 0,1,6 runlevel-hez) ertelemszeruen forditva. Debian alatt pl. az update-rc.d a celszerszam, a reboot szuksegessege meg egy akkora marhasag, hogy inkabb gyorsan felejtsd is el...
- A hozzászóláshoz be kell jelentkezni
Pedig igen. Engem megkertek, hoyg lehessen latni, KI es MIT nezett meg a neten.
NCSA-Auth ( ha jol emlekszem a nevre) kellett bele, mert sajna a csomagba nem volt beleforditva :(
- A hozzászóláshoz be kell jelentkezni
Furcsa lenne, ha epp ez nem lenne benne, mivel ennek nincs semmilyen kulso forditasi fuggosege... Ott lesz az a csomagban, legfeljebb nem kerested a /usr/lib/squid alatt (ha jol emlekszem).
- A hozzászóláshoz be kell jelentkezni
Nem tudom. Ez meg a Woody-stable idejebol szarmazo squid volt. Mindenfajta azonositas hianyzott belole.
Nem a fuggoseg miatt nem kerult bele, hanem passz.
UPDATE: Van a woody-feleben is, ahoyg elnezem. Akkor viszont meg regebbi Debian volt.
Azt tudom, hogy 2.2-es kernel volt benne, mikor atvettem az uzemeltetest. Hat, akkor
egyszerubb lett volna frissiteni a csomagokat, mint ujat forditani...De mar regen volt,
keso banat :)
- A hozzászóláshoz be kell jelentkezni
Ha deb csomagból pakolod fel, akkor is tudhatod, mi hol van: az mc nagyon szépen bele tud lépni a deb csomagba, és megmutatja, mit tartalmaz.
- A hozzászóláshoz be kell jelentkezni
Azt hiszem maradok a forrásnál. Ugyanolyan szép is jó is. Ha sietni kell akkor meg jöhet a csomag! Ennyi!!:D
- A hozzászóláshoz be kell jelentkezni
vagy feltelepítés után: dpkg -L csomagnév, és láthatod az összes, a csomag által feltelepített file-t
- A hozzászóláshoz be kell jelentkezni
Miért forrásból tetted fel a squid-et? Ezt nem értem.
apt-cache search squid
- A hozzászóláshoz be kell jelentkezni
Ne csináljunk már vallási háborút a "forrás vs. csomag" dologból:D
Miért, nem lehet forrásból feltenni a squid-et? Én sem értelek :D
./configure --sysconfdir=/etc/squid
make all
make install
:P
- A hozzászóláshoz be kell jelentkezni
Lehet, csak sok ertelme nincs. A csomag karbantartoja rendszeresen frissit, Te meg akkor, ha eppen eszedbe jut. (Erre az idore leallitani a proxyt, installalni, ujrainditani)
- A hozzászóláshoz be kell jelentkezni
A forrásból felvakart cuccról te tudod, hogy fent van, meg hogy hogyan lett fordítva, etc. Az utánad következő/tartalék/másik rendszergazda meg nem. Ha meg frissíteni kell, hogy szeded le a régi verziót? Persze, azt mondod, hogy az új verzió felülvágja a régit. Na ja. Azokat a fájlokat, ami létezik a régiben is, meg az újban is... Ha mindenképp src-ből akarsz dolgozni (bár production szerveren nem illik C-fordítónak leledzenie, de ez más kérdés...), akkor forrás tgz, Deb-es diff, meg .dsc, aztán build-elj saját csomagot, és azt rakd fel a csomagkezelővel.
- A hozzászóláshoz be kell jelentkezni
És lehet sok szép szívást megélni... Gentoo rulz. Én már hetek óta próbálok a howto-k alapján egy egyszerű scriptcsomagot összerakni, no dependency, de nagyon nem mén.
Az apt-get install gcc semmi perc alatt lefut. Általába on-demand rakom fel, csak aarra kell ügyelni, hogy a /var/cache/apt/archives-be ott figyeljen a megfelelő csomi.
- A hozzászóláshoz be kell jelentkezni
Hmm... nem tudom ki hogy van vele, de én egy élő szerveren nem szívesen frissítek bármi produktívat orrba-szájba... Csak ha nagyon muszáj.
Amúgy ha forrásból nyomok vmit, én előbb mindig virtuális root-ra nyomok make install-t (make DESTDIR=/root/testroot install), és innen 1 perc és megvan a fájllista is.
Amúgy a csomag így is-úgy is akkor frissül amikor nekem eszembe jut frissíteni... szal túl nagy difi nincs.
- A hozzászóláshoz be kell jelentkezni
"Amúgy a csomag így is-úgy is akkor frissül amikor nekem eszembe jut frissíteni... szal túl nagy difi nincs."
de legalább van rá értelmes progi ami figyeli /pl. apticron/, h van e frissíteni való és mondjuk előre letölti a csomagokat, h neked már csak apt-get upgrade -el a letöltött cuccokat kelljen frissíteni + akár e-mail -en figyelmeztet...
- A hozzászóláshoz be kell jelentkezni
Nah hát igy visszaolvasva is elég idegesítő! Szánalmas, ahogy egyesek arra nem képesek hogy segítsenek másoknak, akinek nem inge ne vegye magára! Arról sajnos nem tehetek, hogy nektek az apt-get olyan mint a csecsemőnek az anyatej!:D Egyéni problem! Különösebben nem érdekel! Nah további szép napot így utólag is! Aztán bátrabban a forrásal!:)
- A hozzászóláshoz be kell jelentkezni
Fogj egy squid deb csomagot, másold ki belőle az indítósccriptet, oszt jó'ccakát. Elején beállítgatod a változókat, ami kell, utána egy case-zel start/stop/restart/egyéb(help) lekezelését megcsinálod, az egyes ágakban a megfelelő (squid indítása, leállítása, konfiguráció-újraolvasása) parancsokat bevésed, az ág végén a ;;-t nem felejted el, aztán teszteled.
- A hozzászóláshoz be kell jelentkezni