Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
1.
while true;do daemon;sleep 1;done
2. do crontaba
* * * * * flock -en /tmp/daemon.lock daemon
obu używam.
może być?
Offline
Po cóż rzeźbić w Cronie, jak jest do tego kilka gotowych narzędzi?
Np:
1. Monit:
http://www.debian-administration.org/article/269/Monitor_Debian_servers_with_monit
2. Daemontools:
Stosowany pierwotnie do Qmaila, trzeba w nim rzeźbić skrypty run, jest z tym trochę gimnastyki i czasem kombinowania, ale za to każdy uruchomiony proces dostaje takiego maleńkiego nadzorcę, program supervise, który po prostu pilnuje, czy demon jest uruchomiony.
Ostatnio zatrudniłem go do Nginxa, który został zrzucony z uprawnień roota:
root 4838 0.0 0.0 1072 604 ? S sie07 0:19 supervise nginx nginx 4914 0.0 0.0 175840 3864 ? Ss sie07 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 4915 0.0 0.1 175844 5460 ? S sie07 0:00 nginx: worker process
Niedawno też w ten sposób odpalałem clamd, bo mi się nie chciało kombinować ze zjebanym skryptem startowym demona clamd.
Skrypt do demontoolsa jest kosmicznie trudny, np:
cat /service/nginx/run #!/bin/sh exec 2>&1 exec /usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
Sznurek:
http://cr.yp.to/daemontools.html
http://thedjbway.b0llix.net/daemontools/overview.html
3.Jak ktoś lubi rękodzieło artystyczne, to i bashem (albo zsh|csh) też się da:
http://ubuntu.pl/forum/viewtopic.php?f=135&t=159704
tylko w pętelkach while lepiej dać sleep na kilka sekund, żeby w razie jakiejś poważniejszej awarii demona (kiedy uparcie nie zamierza wstawać), nie dosować własnej maszyny.
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2014-08-08 18:00:36)
Offline
Możesz zaprzyjaźnić się z systemd.
Tam powinno działać to bez dłubaniny.
man systemd.service
Offline
[quote=yossarian]Możesz zaprzyjaźnić się z systemd.
Tam powinno działać to bez dłubaniny.
man systemd.service
[/quote]
Systemd - to jest gigantyczny [url=http://en.wikipedia.org/wiki/Single_point_of_failure]SPOF[/url] dla każdego systemu, do serwera nadaje się, jak 25 kg młotek blacharski do nosa.
W dodatku jest rozwijany jak NM czy PA, w RHEL chodzi idealnie zawsze,
w innych dystrybucjach już nie koniecznie, o ile developerzy danej dystrybucji nie sprawdzają z benedyktyńską dokładnością każdej kolejnej wersji.
Dlatego lepiej się trzymać takich programów, które robią tylko jedną rzecz,
ale najlepiej, jak to jest możliwe, wtedy w systemie jest względny spokój i porządek.
Tu conieco o jakości umysłowej Developerów Systemd:
http://www.muktware.com/2014/04/linus-torvalds-happy-systemd-author-kay-sievers/25151
Ale czego się można spodziewać po programie popełnionym przez ludzi w dużej części związanych z rozwojem PA.
Ostatnio edytowany przez Jacekalex (2014-08-08 18:01:19)
Offline
W internetach są kilometrowe dyskusje na temat systemd i nie ma sensu toczyć kolejnej jałowej dyskusji na ten temat.
Pytanie brzmiało:
Jest jakieś narzędzie w debianie co by umożliwiło monitorowanie określonych procesów w systemie i na wypadek zdechnięcia jakiegoś procesu, odpalało by go na nowo?[/quote]
Odpowiedź brzmi: Tak. Istnieje i jest standardowo w systemie (od wersji Jessie).
A to, czy komuś się podoba systemd, czy nie, to już mnie nie musi interesować.Systemd - to jest gigantyczny SPOF dla każdego systemu, do serwera nadaje się, jak 25 kg młotek blacharski do nosa.[/quote]
To musisz oświecić deweloperów RH, CentOS, Debiana i Ubuntu bo widocznie o serwerach nie mają zielonego pojęcia ;)Offline
Oczywiście, że jest, oczywiście, że standardowo, i oczywiście, że moim zdaniem do wywalenia, z przyczyn wspomnianych dwa posty wyżej.
Dla porównania Daemontools:
svstat /service/*/ /service/freeswitch/: up (pid 32533) 1782 seconds /service/nginx/: up (pid 32532) 1782 seconds /service/php/: up (pid 32531) 1782 seconds
Tylko kłopot polega na tym, że daemontools strasznie "dużo" pamięci zajmuje:
psmemng | egrep 'sv|super' 12.0 KiB + 0.0 KiB = 12.0 KiB supervise (3) 88.0 KiB + 556.0 KiB = 644.0 KiB svscan
Daemontools sprawdza się też w tak hardcorowych miejscach, jak np serwer, gdzie masz 16 pacjentów, każdy musi mieć osobny proces php z osobnym socketem unix, i do tego każdy proces php musi mieć indywidualnie, dla pacjenta, ustawione limity w cgroup, i osobny plik konfiguracyjny.
Wskazówka:
W SystemD i SysVinit też da się to zrobić, jak, to masz na lekturę do poduszki.:DDDD
Przyjemnej zabawy.
Możesz też przy okazji ujawnić tą słodką tajemnicę, po jaką cholerę na serwerze internetowym trzymać udev, logind i podobne bzdury, jak tam chodzi 5 usług na krzyż, każda na osobnym koncie pacjenta, w osobnej klatce ACL lub Chroot i z osobnymi limitami i priorytetami nice i ionice.
Moim zdaniem statyczny dev lub mdev, demony sieciowe, serwer SQL, syslog, ewentualnie snort, fail2ban czy inny IPS, i to wszystko.
PS:
Jak ożenić Fail2ban z SystemD i logami w postaci binarnej?
To musisz oświecić deweloperów RH, CentOS, Debiana i Ubuntu bo widocznie o serwerach nie mają zielonego pojęcia ;)[/quote]
Ile initów masz do wyboru w Debianie?
Nikogo oświecać nie muszę, uważam popularność SystemD za objaw instynktu stadnego, czy raczej konformizmu normatywnego.
Zwłaszcza, że głównym powodem wdrożenia SystemD było Gnome3 i LoginD,
czyli rzeczy na prawdziwych serwerach "niezbędne". ;)
Pozdro
;-)Ostatnio edytowany przez Jacekalex (2015-03-08 08:12:04)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
Dobór oprogramowania to kwestia indywidualnych potrzeb i gustów. Szczególnie, że niemal zawsze jest jakaś alternatywa.
Jest kilka propozycji w tym wątku. Wśród nich jest i systemd.
Mnie akurat nie interesuje co ktoś chce u siebie instalować lub wywalać.
Poza tym przeczytaj uważniej pytanie:
Jest jakieś narzędzie w debianie co by umożliwiło monitorowanie określonych procesów w systemie i na wypadek zdechnięcia jakiegoś procesu, odpalało by go na nowo?[/quote]
i swoje wypowiedzi:Systemd - to jest gigantyczny SPOF dla każdego systemu, do serwera nadaje się, jak 25 kg młotek blacharski do nosa.[/quote]
Możesz też przy okazji ujawnić tą słodką tajemnicę, po jaką cholerę na serwerze internetowym trzymać udev, logind i podobne bzdury, jak tam chodzi 5 usług na krzyż, każda na osobnym koncie pacjenta, w osobnej klatce ACL lub Chroot i z osobnymi limitami i priorytetami nice i ionice.[/quote]
Offline
Wiem, że na upstart na ubuntu ma to wbudowane w siebie, to pewnie podobne do systemd.
Ja jednak sobie obadam tego monita, bo z wierzchu co wyczytałem, to ma chyba wszystko czego potrzebuję.
Offline
Time (s) | Query |
---|---|
0.00011 | SET CHARSET latin2 |
0.00007 | SET NAMES latin2 |
0.00109 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.128.31.76' WHERE u.id=1 |
0.00075 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.128.31.76', 1732559688) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1732559388 |
0.00033 | SELECT topic_id FROM punbb_posts WHERE id=272817 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=26230 ORDER BY posted |
0.00046 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=26230 AND t.moved_to IS NULL |
0.00008 | SELECT search_for, replace_with FROM punbb_censoring |
0.00101 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=26230 ORDER BY p.id LIMIT 0,25 |
0.00089 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=26230 |
Total query time: 0.00537 s |