2013-08-28 154 views
0

如何啓動多個守護進程,它們是「不是」它們是不同守護進程的實例。我已經使用了下面的腳本,但是在停止守護進程並重新啓動之後,啓動時會掛起。啓動和停止多個守護進程

#ubuntu upstart script for antkorp services 
description "Antkorp colloboration and communication platform" 
author "www.antkorp.in" 

task 
start on runlevel [2345] 
stop on runlevel [016] 

pre-start script 
     logger -t "antkorp:" "antkorp platform booting..."; 
end script 

post-start script 
     logger -t "antkorp:" "antkorp platform started successfully."; 
end script 

pre-stop script 
     logger -t "antkorp:" "antkorp platform stopping.."; 
end script 

post-stop script 
     logger -t "antkorp:" "antkorp platform stopped successfully."; 
end script 

這裏是一個守護進程的init文件。

description  "antkorp gw daemon" 

start on starting akorp 
stop on stopping akorp 

expect fork 
respawn 

pre-start script 
logger -t "gw:" "antkorp gw daemon about to start."; 
end script 

exec /home/rk/gw 

post-start script 
logger -t "gw:" "antkorp gw daemon started successfully."; 
end script 

pre-stop script 
logger -t "gw:" "antkorp gw daemon stopping ..."; 
end script 

post-stop script 
logger -t "gw:" "antkorp gw daemon stopped."; 
end script 

manual'stop'work fine but'start'hangs。請指教。

這裏是守護進程的源代碼。

#include<stdio.h> 
#include<unistd.h> 
#include<signal.h> 
#include<stdlib.h> 

void 
sigterm_handler(int signo) 
{ 
    exit(1); 
    return; 
} 

int 
main(int ac, char **av) 
{ 
    signal(SIGTERM, sigterm_handler); 
    daemon(0,0); 
    while(1) sleep(1); 
    return 0; 
} 
+0

我使用'守護進程'功能來守護進程。您可以在守護程序配置文件中看到'expect fork'。 –

+0

「sudo stop gw」和「sudo start gw」命令可以正常工作。 –

回答

0

經過多次試驗和錯誤終於自己解決了。從主腳本「akorp.conf」文件中刪除「任務」關鍵字解決了這個問題。