Простой ответ, если Вы думаете об этом, не может быть никакой стандартной библиотекой C для взаимодействия с ними, просто потому что они не стандартные функции C. Как это работало бы над окнами?
обычно имеет место, что сервис
сценарии перенаправляются к systemctl (Systemd) сценарии, таким образом, это - в основном ваше предпочтение, которое вы хотите использовать.
От моей системы Fedora 20.
$ service sshd status
Redirecting to /bin/systemctl status sshd.service
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Fri 2014-11-21 09:12:10 EST; 5 days ago
Main PID: 1095 (sshd)
CGroup: /system.slice/sshd.service
└─1095 /usr/sbin/sshd -D
Nov 21 09:12:10 dufresne systemd[1]: Starting OpenSSH server daemon...
Nov 21 09:12:10 dufresne systemd[1]: Started OpenSSH server daemon.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on 0.0.0.0 port 22.
Nov 21 09:12:11 dufresne sshd[1095]: Server listening on :: port 22.
я обычно использую оба метода, с тех пор привычка - вторая натура. Но если бы вы пытаетесь адаптироваться к миру Systemd, я продолжил бы вынуждать меня сделать вещи с помощью systemctl
, если это возможно.
Также Systemd приносит все, что вы раньше делали с chkconfig
и сервис
при одной команде, systemctl
, таким образом, я обычно нахожу это легче справиться в конечном счете.
Этот cheatsheet на веб-сайте проекта Fedora полезен в переключении.
Кстати, ответу на ваш исходный вопрос отвечают в сноске на той странице:
Примечание, что весь/sbin/service и/sbin/chkconfig строки упоминаются выше продолжить работать над systemd, и будет переведен в собственный компонент эквиваленты по мере необходимости. Единственным исключением является chkconfig - список.
Способ остановки/запуска служб в Fedora (более поздние версии) - использование systemctl
.
Однако в /etc/init.d/
может остаться несколько служб, которыми можно управлять с помощью команды service
. Вы все еще можете управлять ими с помощью systemctl
, так как systemd
автоматически сопоставляет их с файлами устройства.
Например, на моем CentOS 7 (Fedora 19 или его части) есть сценарий /etc/rc.d/init.d/network
, которым я могу управлять с помощью команды service
. Если вместо этого я использую systemctl
, то он все равно будет работать:
# sudo systemctl status network
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: active (exited) since Tue 2014-11-11 08:21:51 GMT; 2 weeks 1 days ago
Как видите, он был отображен в /etc/rc.d/init.d/network
командой systemd
, а команда systemctl
управляет им.
Я мог бы быть таким "прошлым годом" и вместо этого использовать сервис
:
# service network status
Configured devices:
lo eth0
Currently active devices:
lo eth0 tun0
Обе работы, но обратите внимание, что они дают разные результаты в своих командах статус
.