rubricanis
Homo ludens
Ich möchte erstmalig world und kernel kompilieren. Angeregt durch ein script von ime (danke dafür!) habe ich dazu ein script geschrieben. Allerdings benutze ich DragonflyBSD auf einem VPS was sich aber nur geringfügig von FreeBSD unterscheidet. Ich habe hierzu 3 Fragen:
(1) Ich verstehe die argumente vom trap befehl nicht und man ist da auch nicht hilfreich. Könnte das mal jemand erläutern.
(2) Wenn das script angestossen ist läuft das einfach weiter wenn ich auslogge oder wird das dann abgebrochen. Ich frage deshalb weil das kompilieren ja ewig dauert und ich nicht unbedingt darauf warten will. Und was passiert mit dem output falls ich ausloggen kann. Kann ich das in eine Datei umleiten. Wenn ja wie und macht das überhaupt Sinn?
(3) Ich stehe ja mit shell scripting ein wenig auf dem Kriegsfuß. Könntet ihr das folgende script mal durchsehn ob ich da Fehler gemacht habe oder etwas besser zu machen ist. Ich habe das bislang nur mit einem dummy make getestet.
Die Angst des Torwards vorm Elfmeter! Glücklicherweise gibt es ja beim VPS die Möglichkeit einen Snapshot zurückzuspielen...
tia, Peter
(1) Ich verstehe die argumente vom trap befehl nicht und man ist da auch nicht hilfreich. Könnte das mal jemand erläutern.
(2) Wenn das script angestossen ist läuft das einfach weiter wenn ich auslogge oder wird das dann abgebrochen. Ich frage deshalb weil das kompilieren ja ewig dauert und ich nicht unbedingt darauf warten will. Und was passiert mit dem output falls ich ausloggen kann. Kann ich das in eine Datei umleiten. Wenn ja wie und macht das überhaupt Sinn?
(3) Ich stehe ja mit shell scripting ein wenig auf dem Kriegsfuß. Könntet ihr das folgende script mal durchsehn ob ich da Fehler gemacht habe oder etwas besser zu machen ist. Ich habe das bislang nur mit einem dummy make getestet.
Code:
#!/usr/bin/env sh
line="--------------------"
jobs=`sysctl -n hw.ncpu`
src="/user/src"
config="$HOME/kernel/MYKERNEL"
logfile="$HOME/kernel/log.txt"
log="/usr/bin/time -a -o ${logfile}"
#------ open log ---------
rm ${logfile}
touch ${logfile}
echo `date` >> ${logfile}
#---- error catcher -----
catch() {
local line="================"
echo >> ${logfile} ${line} "ERROR in make ${1}" ${line}
echo ${line} "ERROR in make ${1}" ${line}
exit 1
}
#---------- trap ??? ---------------
#------ go! ------
for target in clean buildworld buildkernel installkernel installworld upgrade; do
echo >> ${logfile} ${line} 'make' ${target} ${line}
if [ ${target} = "buildkernel" -o ${target} = "installkernel" ]; then
${log} make -s -C ${src} -j ${jobs} "KERNCONF=${config}" ${target} || catch ${target}
else
${log} make -s -C ${src} -j ${jobs} ${target} || catch ${target}
fi
done
#-------- done ----------
echo `date` >> ${logfile}
Die Angst des Torwards vorm Elfmeter! Glücklicherweise gibt es ja beim VPS die Möglichkeit einen Snapshot zurückzuspielen...
tia, Peter