Я только что установил CentOS 7.1 на один сервер, и меня смущает, как systemctl
работает по сравнению с service
.
В CentOS 6 я получал обратную связь при запуске service
, Такие как:
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
И когда я бегу service
в CentOS 7 это происходит:
root@centos7 [~]# service mysql restart
Redirecting to /bin/systemctl restart mysql.service
Что мне не хватает?
Как и любая хорошая команда unix, systemctl
ничего не выводит, если не возникла проблема или вы не выполнили команду, которая явно требует вывода. Если вы ничего не видите, значит команда выполнена успешно.
Если хотите, можете бежать systemctl status mysql
чтобы увидеть его текущий статус.
Вот что я делаю:
systemctl start my-service && journalctl -fexu my-service
journalctl
это самый простой способ получить вывод из ваших системных служб.
-f
следует за выводом журнала my-service
пока я не уйду (ctrl-C).-e
прокручивает до конца (самых последних) сообщений журнала. -x
объяснения из Каталога сообщений журнала, если таковые имеются.-u
будет показывать только журналы из my-service
Блок.С момента появления облака люди больше не запускают и останавливают сервисы вручную, поэтому эта команда не требует обратной связи, даже в качестве опции. Спасибо за полет на systemd!