Можно ли вызвать «чистое» завершение приложения, написанного на C, в системе Linux?Под «чистым» я имею в виду решение для деинициализации интерфейсов и т. Д. Как деструктор объекта в C ++, но для моего приложения на C.
Я знаю, что возможно отключить службы с помощью systemd,но мое приложение не является услугой.Я использую systemd.service для запуска моего приложения, но само приложение, насколько я понимаю, службы systemd, считается однократным (вначале происходит инициализация, а затем он входит в цикл while (1)).
Можно ли выйти из цикла с помощью systemd или аналогичной функциональности Linux?Каково «стандартное» решение такой проблемы?
int main (int argc, char **argv){
// ... some initialization
printf("Warming up!\n);
while(keepRunning){
// do stuff
printf("Running!!\n");
}
// de-initialize
printf("By by\n");
}
Я ожидаю, что systemd изменит значение keepRunning на 0. Но я думаю, что это будет слишком просто.