我用C++做了我的第一個linux服務。我該如何讓我的linux服務觸發我的信號?
pid_t pid, sid;
pid = fork();
if (pid < 0) {
exit(EXIT_FAILURE);
}
if (pid>0) {
exit(EXIT_SUCCESS);
}
umask(0);
sid = setsid();
if (sid < 0) {
exit(EXIT_FAILURE);
}
if ((chdir("/")) < 0) {
exit(EXIT_FAILURE);
}
close(STDIN_FILENO);
close(STDOUT_FILENO);
close(STDERR_FILENO);
while (1) {
????????
//sleep(10);
}
exit(EXIT_SUCCESS);
會是什麼做的是等待我的信號,當它接收它做一些任務,然後再等待我的下一個信號。
我會發送我的信號(或其他)從我的c + +應用程序運行在同一臺機器。看起來像兩個應用程序之間的信號機制。但在這種情況下,一個是Linux服務,我不知道該服務如何等待我的信號。
我怎麼能做到這一點?我有什麼選擇?
謝謝。
注意:「信號」一詞造成混淆。我不打算在技術上使用這個詞。我的意思是我需要從我的cpp應用程序中與我的linux服務進行交流。
注2:使用信號是沒有用的,因爲在其處理程序中幾乎做任何事情都是不安全的,而我需要做很多事情。 (我不知道我是否可以啓動一個線程,至少!)
你是什麼意思的「信號」呢?你的「服務器」應該是做什麼的?在同一個系統上的兩個進程之間的通信只是正常的[進程間通信](http://en.wikipedia.org/wiki/Inter-process_communication),一個進程在後臺運行並不重要。 –
['sigwait'](http://linux.die.net/man/3/sigwait),如果你真的意味着信號 – Diego
我不特別指任何事情。只是我想從我的cpp應用程序中與我的linux服務進行通信。 –