Skocz do zawartości
Zaloguj się, aby obserwować  
GyniO

Jak napisać skrypt do restartu usługi na debian...

Polecane posty

Witam, chciałbym napisać skrypt, który stopuje, startuje, restartuje jakiś skrypt..

 

Miało by to działać na tej samej zasadzie co np

/etc/init.d/apache stop|start|restart
/etc/init.d/proftpd stop|start|restart

 

Aktualnie odpalam skrypt komendą ./jakistamskrypt no i działa on w tle..

 

Nie jest mi to bardzo po drodze i chciałbym by się uruchamiał on poprzez /etc/init.d/skrypt start no i musiałby on działać nie w tle, tylko jako (sesja? nie kojarzę jak się to fachowo nazywało)

 

 

Czy jest to możliwe i czy mógłby mi ktoś pomóc?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyli ma on działać na zasadzie daemona ma cały czas nasłuchiwać?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

pewnie chodzi koledze o deamnona. a może w screen'ie go odpalać?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Czyli ma on działać na zasadzie daemona ma cały czas nasłuchiwać?

 

Daemon..

 

Tak, prócz uruchamiania/restartu i zamykania ma cały czas nasłuchiwać ..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Co w nim niejasnego jest, to może wyjaśnimy?

 

Tak wygląda cały plik ?

Który umożliwia: start,stop, restart i opiera program na sesji(non stop działa) ?

int main(void) {

	/* Our process ID and Session ID */
	pid_t pid, sid;

	/* Fork off the parent process */
	pid = fork();
	if (pid < 0) {
			exit(EXIT_FAILURE);
	}
	/* If we got a good PID, then
	   we can exit the parent process. */
	if (pid > 0) {
			exit(EXIT_SUCCESS);
	}

	/* Change the file mode mask */
	umask(0);

	/* Open any logs here */		

	/* Create a new SID for the child process */
	sid = setsid();
	if (sid < 0) {
			/* Log the failure */
			exit(EXIT_FAILURE);
	}



	/* Change the current working directory */
	if ((chdir("/")) < 0) {
			/* Log the failure */
			exit(EXIT_FAILURE);
	}

	/* Close out the standard file descriptors */
	close(STDIN_FILENO);
	close(STDOUT_FILENO);
	close(STDERR_FILENO);

	/* Daemon-specific initialization goes here */

	/* The Big Loop */
	while (1) {
	   /* Do some task here ... */

	   sleep(30); /* wait 30 seconds */
	}
  exit(EXIT_SUCCESS);
}

 

Gdzie mam wpisać ścieżkę czy coś? xd

W sprawach unixowskich jestem nowy..

 

PHP znam więc mniej więcej wiem co, gdzie robi ale np:

 

 /* Do some task here ... */

 

Więc? Co ma robić w pętli ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Tak wygląda cały plik ?

Który umożliwia: start,stop, restart i opiera program na sesji(non stop działa) ?

 

nie, to jest przykład kodu źródłowego daemona ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×