Summary: | нельзя использовать oneshot в .service-файле | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | serpiph <serpiph> |
Component: | anacron | Assignee: | placeholder <placeholder> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | glebfm, ldv, legion, placeholder |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
serpiph
2013-04-01 12:16:22 MSK
anacron-1:2.3-alt5 -> sisyphus: * Mon Apr 01 2013 Dmitry V. Levin <ldv@altlinux> 1:2.3-alt5 - anacron.service: changed service type to simple (closes: #28775). Я думал, что нашёл всё. Похоже, надо добавить ещё эти параметры: [Service] StandardInput=null StandardOutput=journal StandardError=journal В противном случае сервис ждёт старта 90 с и по таймауту отваливается. По крайней мере, с ними сервис сразу стал активным и ушёл в фон. Не понимаю, зачем StandardOutput и StandardError, разве они по умолчанию не syslog? anacron-1:2.3-alt6 -> sisyphus: * Mon Apr 01 2013 Dmitry V. Levin <ldv@altlinux> 1:2.3-alt6 - anacron.service: redirect standard descriptors (closes: #28775). Я попытался найти причину неотключения от консоли. По-умолчанию (если верить man systemd.exec) стандартный вход - это null, стандартный вывод - это journal, стандартный вывод ошибок - это inherit (то есть journal). То есть придраться, вроде, не к чему. Вот из /etc/systemd/system.conf: [Manager] ... #DefaultStandardOutput=journal #DefaultStandardError=inherit Но только после явного указания, что и куда идёт, всё заработало. В /etc/systemd/journald.conf я раскомментировал такую строку: [Journal] ... ForwardToSyslog=yes То есть syslog и так получает от journald всю информацию. Я тогда специально прописал все вводы/выводы и у меня заработало именно так, как мне надо. Где косяк - в systemd ли, в доках ли на systemd - понять сходу не могу, надо ковырять исходные тексты. |