watchdog, na czym polega?

Tylko tematy nie mieszczące się powyżej.
Borneq
Sędziwy Jeż
Sędziwy Jeż
Posty: 90
Rejestracja: 08 lip 2010, 11:23
Płeć: Mężczyzna
Wersja Ubuntu: 16.04
Środowisko graficzne: Unity
Architektura: x86_64

watchdog, na czym polega?

Post autor: Borneq » 25 cze 2018, 16:17

Czy to jest jakieś polecenie Linuxa podobnie jak nohup?
Chciałbym aby mój program działał jako daemon (nohup), ale żeby był watchdog, aby nie zabijał mojego programu, ale za to program działałby sam przez pewien czas i kończył działanie, wtedy watchdog wznawiał by go. Jak to zrobić?
Awatar użytkownika
jacekalex
Gibki Gibbon
Gibki Gibbon
Posty: 3839
Rejestracja: 17 cze 2007, 02:54
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64

Re: watchdog, na czym polega?

Post autor: jacekalex » 25 cze 2018, 17:33

Najlepszy do tego jest moim zdaniem daemontools (jest w repo).
Strona programu:
https://cr.yp.to/daemontools.html

Przykładowo uruchamianie serwera Mysql przez daemontoolsa u mnie:

Kod: Zaznacz cały

root ~> cat /service/mysqld/run

Kod: Zaznacz cały

#!/bin/sh

exec 2>&1
mkdir -p /var/run/mysqld;
chown mysql:mysql /var/run/mysqld;
chmod 1777 /var/run/mysqld;
mkdir -p mkdir -p /var/spool/postfix/var/run/mysqld;
grep '/var/spool/postfix/var/run/mysqld' /proc/mounts 2>&1 >/dev/null || mount -o bind /var/run/mysqld  /var/spool/postfix/var/run/mysqld;
exec /usr/bin/setuidgid mysql /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf
Czy działa:

Kod: Zaznacz cały

 svstat /service/mysqld/
/service/mysqld/: up (pid 6648) 679652 seconds

Kod: Zaznacz cały

echo status | mysql -u root -p
Enter password: 
--------------
mysql  Ver 15.1 Distrib 10.1.31-MariaDB, for Linux (x86_64) using readline 6.3

Connection id:		1358
Current database:	
Current user:		root@localhost
SSL:			Cipher in use is DHE-RSA-AES256-SHA
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server:			MariaDB
Server version:		10.1.31-MariaDB Source distribution
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8mb4
Db     characterset:	utf8mb4
Client characterset:	utf8mb4
Conn.  characterset:	utf8mb4
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			7 days 20 hours 51 min 19 sec

Threads: 3  Questions: 156001  Slow queries: 0  Opens: 54  Flush tables: 1  Open tables: 48  Queries per second avg: 0.229

Note that you are running in safe_update_mode:
UPDATEs and DELETEs that don't use a key in the WHERE clause are not allowed.
(One can force an UPDATE/DELETE by adding LIMIT # at the end of the command.)
SELECT has an automatic 'LIMIT 1000' if LIMIT is not used.
Max number of examined row combination in a join is set to: 1000000

--------------
:clap:

A to np serwer Voip Asterisk:

Kod: Zaznacz cały

# G1 ###   pon cze 25 17:46:58  domek : ~ 
root ~> cat /service/asterisk/run
#!/bin/sh

exec 2>&1
exec /usr/bin/setuidgid asterisk /usr/sbin/asterisk -f
Pozdro
:craz:
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux :)
ODPOWIEDZ

Wróć do „Inne”