Я начал использовать AMI Amazon Linux. Кажется, / и т.д. / systemd / system / папка, но я не могу использовать systemctl чтобы начать остановку службы, которую я добавил в / и т.д. / systemd / system / папка.
$ systemctl
bash: systemctl: command not found
Amazon Linux v 2.0 поддерживает systemd и устанавливается по умолчанию:
cat /etc/os-release
NAME="Amazon Linux"
VERSION="2.0 (2017.12)"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2.0"
PRETTY_NAME="Amazon Linux 2.0 (2017.12) LTS Release Candidate"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2.0"
HOME_URL="https://amazonlinux.com/"
rpm -qa | grep -i systemd
systemd-libs-219-42.amzn2.4.x86_64
systemd-219-42.amzn2.4.x86_64
systemd-sysv-219-42.amzn2.4.x86_64`
к сожалению, только amazon linux v2 поддерживает systemd. Amazon linux v1.0 не поддерживает https://aws.amazon.com/amazon-linux-2/
Amazon Linux в конечном итоге основан на старой версии CentOS / RHEL и не поддерживает systemd.
Если вам нужен ужасный хак, чтобы заполнить пробел в ваших скриптах, простая функция может работать на вас. Он охватывает только самое необходимое и очень легко сломается.
С этим вы можете выполнить стоп, Начало, начать сначала, положение дел и активен запросы, такие как systemctl start docker
. Очевидно, что результаты не будут совпадать systemctl
, хотя is-active
обеспечивает такой же вывод текста в моей системе.
#!/bin/bash
function systemctl() {
if [ "$1" == 'is-active' ]; then
if [ -z "$(service $2 status | grep "is stopped")" ]; then
echo "$2 is active"
else
echo "$2 is inactive"
fi
else
service $2 $1
fi
}
Вы можете расширить его, поместив все определение функции в блок if для проверки типа ОС или наличия systemctl
если необходимо.
Если вы хотите использовать, sudo systemctl enable httpd
просто используйте sudo chkconfig httpd on
Вот ссылка, AWSEC2
Изучив, я обнаружил, что Amazon Linux AMI release 2018.03
версии Amazon Linux не поддерживают systemctl
. Но это не значит, что init.d
службы не могут быть настроены на автоматический запуск при загрузке.
chkconfig
можно использовать для реализации варианта использования.
Чтобы настроить мой init.d
служба, имя которой было ingester
:
sudo chkconfig ingester on
Чтобы перечислить все услуги:
sudo chkconfig --list
Вот это страница руководства из chkconfig
: