Existují volby a parametry, které ovlivňují globální chování služby nebo jednotlivých skriptů. Mezi skripty lze vytvořit závislosti, tak že nastartování jednoho automaticky způsobí nastartování jiného.
Konfigurační soubor initskriptu se nachází v ${prefix}/etc/systemtap/config. Přijatelné parametry jsou detailně popsány v sekci GLOBÁLNÍ PARAMETRY.
Skript musí být umístěn v adresáři ${prefix}/etc/systemtap/script.d a musí mít příponu .stp. Poznamenejme, že když se systemtap skripty pouštějí z příkazové řádky, jak je obvyklé, není přípona .stp povinná. Jméno skriptu smí obsahovat jen alfanumerické znaky a '_', a nesmí začínat číslem. Adresář pro skripty lze změnit nastavením parametru SCRIPT_PATH v konfiguračním souboru.
Pokud je zapnutá volba AUTOCOMPILE, příkaz se pokusí sestavit (nebo obnovit sestavení) skriptů v případě, že je platná jedna z následujících podmínek:
Initramfs se vytváří pro aktuální jádro, nebo pro jádro určené volbou -r. Výchozí umístění initramfs je /boot/initramfs-KVER.img, kde KVER odpovídá výstupu `uname -r`. Příkaz "onboot" dále obnoví nastavení zavaděče systému tak, aby byl použit nový initramfs. Pokud se má vytvořit initramfs v jiném umístění, použijte volbu -o. V tomto případě se nastavení zavaděče systému nezmění.
Pokud výstupní soubor již existuje, bude přepsán pokud není dán přepínač -b , kdy se původnímu souboru přidá přípona .bak namísto přepsání. Pokud ale .bak soubor již existuje, nebude přepsán.
UPOZORNĚNÍ: Nepoužívejte volbu -o příkazu stap(1) u "onboot" skriptů, protože skript poběží dříve, než se namountuje kořenový souborový systém. Pokud potřebujete více místa pro výstup, zvětšete velikost bufferu.
VAROVÁNÍ: S touto volbou může služba nastartovat neočekávané skripty nacházející se v cache. Před startem služby je vhodné obsah cache zkontrolovat.
Zde je ukázka konfiguračního souboru.
SCRIPT_PATH=/var/systemtap/script.d/ PASSALL=yes RECURSIVE=no
Při kompilaci skriptů se ignorují následující volby: -p, -m, -r, -c, -x, -e, -s, -o, -h, -V, -k.
Při spouštění skriptů se ignorují následující volby: -h, -V, -v, -t, -p, -I, -e, -R, -r, -m, -k, -g, -P, -D, -b, -u, -q, -w, -l, -d, -L, -F, a všechny dlouhé volby.
foo_REQ="bar"
Více skriptů lze nastavit jako mezerami oddělený seznam.
Příklad konfiguračního souboru:
script1_OPT="-o /var/log/script1.out" script2_OPT="-o /var/log/script2.out" script2_REQ="script1"
# cp script1.stp /etc/systemtap/script.d/
Pak můžeme nastavit volby pro daný skript. Například:
# vi /etc/systemtap/conf.d/group1 script1_OPT="-o /var/log/group1.out"
Pokud poté nainstalujeme skript, např. "script2.stp", který má být spuštěn po "script1.stp", máme zde závislost mezi skripty. Tu ošetříme následovně:
# cp script2.stp /etc/systemtap/script.d/ # vi /etc/systemtap/conf.d/group1 script2_OPT="-o /var/log/group2.out" script2_REQ="script1"
V tomto případě, pokud stap(1) selže při startu, služba SystemTap se ani nepokusí nastartovat script2.
# service systemtap start # service systemtap stop
Mohli bychom být konkrétnější, například takto:
# service systemtap start script1 # service systemtap stop script1
Pokud nenastaly chyby, máme vše připraveno k použití.
# chkconfig systemtap on
# rm /etc/systemtap/script.d/script2.stp # vi /etc/systemtap/conf.d/group1
Pokud skript stále běží, měli bychom jej zastavit:
# service systemtap stop script2
Také můžeme smazat relevantní cache:
# service systemtap cleanup script2
# service systemtap compile myscript -r <NEW_KERNEL_VERSION>
# service systemtap compile myscript -r \
> <KERNEL_VERSION_OF_TARGET_MACHINE> # tar czf stap-scripts-<kernel-version>.tar.gz \
> /var/cache/systemtap/<kernel-version> \
> /etc/systemtap/conf.d/<configfile>
A poté je přesunout na cílový stroj.
Nejdříve nainstalujeme skript do odpovídajícího adresáře a provedeme potřebná nastavení:
# cp myscript.stp /etc/systemtap/script.d # vi /etc/systemtap/conf.d/myscript.conf
Pro přidání skriptu do initramfs použijeme příkazonboot:
# service systemtap onboot myscript
Pokud daný skript není zkompilovaný a uložený v cache, dojde ke kompilaci. Ve výchozím umístění bude vytvořen nový initramfs. Mohli bychom použít volbu -b pro vytvoření zálohy původního initramfs. Nyní můžeme restartovat systém.
# service systemtap onboot myscript \ > -o /boot/special_initramfs.img
Jakmile je initramfs vytvořen, je možné jej použít prostou úpravou parametrů jádra při startu systému.
# service systemtap onboot myscript \ > -r 3.12.6-200.fc19.x86_64
# service systemtap onboot
Takto se vytvoří nový initramfs bez SystemTap modulů.
error::reporting(7stap), https://sourceware.org/systemtap/wiki/HowToReportBugs