Я только что установил CentOS 7.1 на один сервер, и меня смущает, как systemctl
работает по сравнению со службой
.
В CentOS 6 , Я бы получил обратную связь при запуске службы
, например:
root@centos6 [~]# service mysql restart
Shutting down MySQL........................................[ OK ]
Starting MySQL.............................................[ OK ]
root@centos6 [~]# service mysql status
MySQL running (910285) [ OK ]
root@centos6 [~]#
Однако в CentOS 7, когда я использую systemctl
, я ничего не получаю. Я не знаю, что случилось, или что-то вообще произошло:
root@centos7 [~]# systemctl restart mysql
root@centos7 [~]# /bin/systemctl restart mysql.service
# Nothing happened
И когда я запускаю службу
в CentOS 7, происходит следующее:
root@centos7 [~]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
Что мне не хватает?
Как и любая хорошая команда unix, systemctl
ничего не выводит, если только не возникла проблема или вы выполнили команду, которая явно требует вывода. Если вы ничего не видите, значит команда выполнена успешно.
Если хотите, вы можете запустить systemctl status mysql
, чтобы увидеть его текущий статус.
С момента появления облака люди больше не запускают и останавливают службы вручную, поэтому эта команда не требует обратной связи, даже в качестве опции. Спасибо за полет по systemd!
Вот что я делаю:
systemctl start my-service && journalctl -fexu my-service
journalctl
- это самый простой способ получить вывод из ваших системных служб.
-f
следует за выводом журнала ] my-service
, пока я не выйду (ctrl-C). -e
прокручивает до конца (самых последних) сообщений журнала. -x
объяснения из каталога сообщений журнала, если таковые имеются. -u
покажет только журналы из my-service
ед. Мое "решение" это (сделано давно) заключалось в написании мини-скрипта, который в основном делает то, что предлагается в одном из ответов выше: systemctl перезапускает myservice и сразу после этого systemctl status myservice, поэтому вы просто запускаете перезагрузку и получаете статус впоследствии. Я также согласен с тем, что это ненужное решение, поскольку в systemctl уже должна быть реализована опция verbose/status, но это то, что есть.