Linux에서 부팅 시 서비스를 자동 시작하는 방법은 무엇입니까?

시스템 관리자가 알아야 할 필수 사항 중 하나는 부팅 시 서비스를 구성하는 방법이므로 서버가 재부팅되면 자동으로 시작됩니다.

서버 재부팅에는 다음을 포함하여 다양한 이유가 있을 수 있습니다.

  • 매주, 매월 예정
  • 하드웨어/커널 문제로 인해 예상치 못한

올바른 구성을 수행하면 재부팅할 때마다 수동으로 시작할 필요가 없습니다.

약간의 자동화. 그렇지 않아?

다음 예는 다음에서 테스트한 두 개의 인기 있는 배포판에 대한 것입니다. 디지털오션 서버.

CentOS 또는 RHEL 6.x

다음 예에서는 Apache HTTP 서버를 사용했지만 RHEL(Red Hat Enterprise Linux) 또는 CentOS 6 버전에서 부팅할 때 시작하려는 다른 서비스에 대해 절차가 동일하게 유지됩니다.

모든 스크립트 파일 이름을 유지할 수 있으며 여기에 httpd를 보관했습니다.

  • Linux 서버에서 루트 사용자 되기
  • /etc/init.d/에서 스크립트를 생성하거나 복사합니다.
[[email protected] init.d]# ls -ltr httpd
-rwxr-xr-x. 1 root root 3371 Jan 6 08:56 httpd
[[email protected] init.d]#

Linux 또는 CentOS에서 기본적으로 사용 가능한 chkconfig 유틸리티를 사용합니다.

  • –add 매개변수와 함께 chkconfig를 사용하여 부팅 시 시작할 스크립트 추가
[[email protected] init.d]# chkconfig --add httpd
[[email protected] init.d]# chkconfig httpd on
  • –list를 사용하여 스크립트가 성공적으로 추가되었는지 확인
[[email protected] init.d]# chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[[email protected] init.d]#

그게 다야! Linux 부팅 시 서비스를 시작하기 위해 httpd 스크립트가 호출됩니다.

자동 시작 서비스를 비활성화해야 하는 경우 다음 명령을 사용할 수 있습니다.

chkconfig httpd off
chkconfig --del httpd

RHEL 또는 CentOS 7.x/8.x

RHEL 7에서 부팅 시 서비스를 구성하는 절차는 RHEL 6과 약간 다릅니다. systemd를 사용하여 서비스를 관리합니다.

Apache, PHP, MySQL, Nginx 스크립트와 같은 대부분의 소프트웨어는 설치할 때 서비스에 추가됩니다.

PHP-FPM의 예를 들어보겠습니다.

먼저 php-fpm의 상태를 살펴보겠습니다(이는 이미 /usr/lib/systemd/system/에 스크립트가 있다고 가정)

[[email protected] ~]# systemctl status php-fpm
php-fpm.service - The PHP FastCGI Process Manager
Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled)
Active: inactive (dead) 
[[email protected] ~]#

보시다시피 상태가 비활성화됨은 부팅 시 시작하도록 구성되지 않았음을 의미합니다.

systemctl을 사용하여 부팅 시 php-fpm이 시작되도록 합시다.

[[email protected] ~]# systemctl enable php-fpm
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.
[[email protected] ~]#

자 그럼 상태를 보시죠

[[email protected] ~]# systemctl status php-fpmphp
php-fpm.service - The PHP FastCGI Process Manager
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    Active: inactive (dead) 
[[email protected] ~]#

php-fpm은 부팅 시 시작하도록 모두 설정되어 있습니다. 서버를 재부팅하여 테스트해보자.

부팅 시 서비스 시작을 비활성화해야 하는 경우 아래 명령을 사용할 수 있습니다.

systemctl disable php-fpm

또한 부팅 시 시스템 및 자동 시작 서비스를 설명하는 이 게시물을 확인하는 것이 좋습니다.

우분투

Ubuntu에서 자동 시작 서비스를 구성하는 것은 약간 다릅니다. 스크립트 이름이 Nginx라고 가정해 보겠습니다.

  • 루트로 Ubuntu 서버에 로그인
  • /etc/init.d/ 폴더에 스크립트 복사
  • 아래 명령을 실행
update-rc.d nginx defaults
  • 서비스가 시작되었는지 확인하려면 서버를 재부팅하십시오.

이것은 저에게 도움이 되었고 여러분에게도 도움이 될 것이라고 믿습니다.

시스템 관리는 항상 재미있고 도전적이며, 이 분야에서 경력을 쌓고 싶다면 다음을 참조하십시오. 유데미 코스.

다음으로 Linux의 갑작스런 재부팅 이유를 찾는 방법을 확인하십시오.
CentOS 6.x에 PHP-FPM 5.6을 설치/업그레이드하려면 여기로 이동하십시오.

기사를 재미있게 읽었습니까? 세상과 함께 나누는 건 어떨까요?