Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Berkeley Humanoid Lite (Onshape, GitHub) je open source humanoidní robot. V amerických cenách jej lze sestavit do 5000 dolarů.
Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
#!/bin/sh
if [ -n "`pidof thttpd`" ]; then
killall thttpd 2>/dev/null
fi
/opt/sbin/thttpd -C /opt/etc/thttpd.conf
ktory po restarte routra spusti thttpd s danym nastavenim. Obcas sa ale stane (a doteraz neviem preco), ze sa tento proces vypne (mozno spadne sam, neviem..). Rozmyslam nad riesenim problemu a vychadza mi, ze by som mohol do cronjobu spravit, ze kazdu minutu bude kontrolovat, ci bezi proces "/opt/sbin/thttpd -C /opt/etc/thttpd.conf" a ak by nebezal, tak by ho zapol. Prosim Vas, ake riadky by som mal dat do spustaneho cronjobu (suboru?)? diky moc
Řešení dotazu:
#!/bin/bash #Tento spustitelny soubor se ma chovat jako daemon. #Spousti se prikazem, umistenym v /etc/rc.local: #nohup /kde/je/umisteny/tento/mujdemon >&/dev/null& #(`nohup /kde/je/umisteny/tento/mujdemon >/dev/null 2>&1&`) #Ukoncuje se prikazem: #kill $(pgrep mujdemon) >/dev/null 2>&1 #Number SIG Meaning #0 0 On exit from shell #1 SIGHUP Clean tidyup #2 SIGINT Interrupt #3 SIGQUIT Quit #6 SIGABRT Abort #9 SIGKILL Die Now (cannot be trap'ped) #14 SIGALRM Alarm Clock #15 SIGTERM Terminate #How kill sleep trap 'echo stop >/dev/null; kill $(jobs -p)' 0 1 2 3 6 15 log="/opt/mujdemonthttpd_log" logername="thttpd" while true; do sleep 120 logerpid="$(/usr/bin/pgrep -x $logername)" if [ -z "$logerpid" ]; then aktualnicas=`date +"%d.%m.%Y_%H:%M"` echo "$(echo $aktualnicas)_mujdemon_restartoval_thttpd, ktery umrel" >>"$log" /opt/etc/init.d/S80thttpd >/dev/null 2>&1 fi done Nebo by stačilo jen: #!/bin/bash #Tento spustitelny soubor se ma chovat jako daemon. #Spousti se prikazem, umistenym v /etc/rc.local: #nohup /kde/je/umisteny/tento/mujdemon >&/dev/null& #Ukoncuje se prikazem: #kill $(pgrep mujdemon) >/dev/null 2>&1 #How kill sleep trap 'echo stop >/dev/null; kill $(jobs -p)' 0 1 2 3 6 15 while true; do sleep 120 /opt/etc/init.d/S80thttpd >/dev/null 2>&1 done
while true; ...
asi bude stačit.
Celá šílená konstrukce by se vyřešila použitím fungujícího initu, konkrétně tedy systemd, který hlídá spuštěné služby a umí je restartovat, když spadnou (Restart=on-failure)To sa už nerobí pomocou inittab?
Valid actions for the action field are: respawn The process will be restarted whenever it terminates (e.g. getty).
thttpd -D
init
jednoducho čaká na SIGCHLD
od child-procesu a ak ten child-proces spustil pre riadok v inittabe, ktorý má respawn
, tak ten child pustí znova. Z toho hľadiska je jedno, či ten child process skončí normálne, alebo nie.
#!/bin/bash # Service name while true; do SERVICE=“vlc“ SPHINXPID=$(pgrep $SERVICE) if [[ -z "$SPHINXPID" ]]; then # Not run! vlc else # All is OK echo „$SERVICE running.“ fi unset SPHINXPID unset SERVICE sleep 1 done
Tiskni
Sdílej: