Centos 6 버전에서 rc.local에 아파치, proftp, 등 서버 실행과 동시에 실행해 주어야 하는 프로그램들을 자동으로 실행시켰습니다. 그런데 Centos 7 버전에서는 rc.local에 프로그램을 등록해 주어도 자동 실행이 되지 않습니다. 이유는 매번 centos의 버전이 올라가면서 항상 보안 관련된 내용들이 강화되는데 이번에는 rc.local 이 보안상 이유 활성화가 안되어 있습니다. 새로운 버전에 익숙해져야 되지만 익히기가 쉽지 않아 rc.local을 centos7에서도 사용을 할 수 있도록 세팅을 해 보았습니다.
[root@localhost data_room]# cat /etc/rc.local
-----------------------------------
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
1. rc.local파일의 실행 권한을 확인 후 실행 권한 ( cmod +x )을 허용해줍니다.
#> ll /etc/rc.d/rc.local
--------------------------------------------------
-rw-r--r--. 1 root root 473 9월 1 23:57 /etc/rc.d/rc.local
- 실행 권한 ( cmod +x ) 을 허용
#> chmod +x /etc/rc.d/rc.local
#> ll /etc/rc.d/rc.local
--------------------------------------------------
-rwxr-xr-x. 1 root root 473 9월 1 23:57 /etc/rc.d/rc.local
- lc-local의 실행 상태를 확인해 봅니다.
#> systemctl status rc-local.service
--------------------------------------------------
rc-local.service - /etc/rc.d/rc.local Compatibility
Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
Active: inactive (dead)
Active: inactive (dead) : 서비스가 아직 실행이 안되어 있는 상태입니다.
2. rc.local 서비스를 실행합니다.
[root@test ~]# systemctl start rc-local.service
- 서비스 상태를 다시 확인
#> systemctl status rc-local.service
--------------------------------------------------
rc-local.service - /etc/rc.d/rc.local Compatibility
Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
Active: active (exited) since 수 2022-11-16 20:13:37 KST; 5s ago
Process: 14156 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
3. 서버가 재부팅 되어도 실행되도록 설정을 변경합니다.
- rc-local.service 서비스 상태 확인
#>systemctl list-unit-files | grep rc.local
--------------------------------------------------
rc-local.service static
systemctl list-unit-files | grep rc.local 명령으로 상태를 확인할 수 없는 경우 systemctl list-units --type=service |grep rc.local의 명령으로 실행해 보십시오.
- 리부팅되어도 실행되게끔 서비스 설정을 enable 해줍니다.
#> vi /usr/lib/systemd/system/rc-local.service
--------------------------------------------------
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.d/rc.local is executable.
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
rc-local.service 설정에 아래 내용을 추가하여 줍니다.
[Install]
WantedBy=multi-user.target
- rc-local.service 파일 수정 후 rc-local.service를 enable 해줍니다.
#>systemctl enable rc-local.service
- rc-local.service 서비스 상태를 다시 확인해 봅니다.
#>systemctl list-unit-files | grep rc.local
--------------------------------------------------
rc-local.service enabled
rc-local.service의 상태가 static에서 enabled로 변경되었습니다.
4. rc.local 파일에 실행 명령어를 기입 후 서버 재실행하여 정상작동 확인.
rc-local.service의 상태가 enabled 정상적으로 작동된다면 자동 실행 프로그램을 rc.local 에 추가하여 자동 실행이 되는지 다시 재부팅하여 확인해 주십시오.
//rc.local에 ftp 서비스를 자동 실행 등록 예
#>echo '/usr/local/proftpd/sbin/proftpd' >> /etc/rc.d/rc.local
이상 centos7 에서도 rc-local.service를 이용해 자동 실행 등록을 할 수 있도록 하는 내용이였습니디.
개인적 서버 운영을 위한 메모임으로 서버의 상태에 따라 오작동이 발생할 수도 있으니 참고만 하여 주십시요.
'프로그램' 카테고리의 다른 글
리눅스, 프로세스 정보 확인 top 명령어 (0) | 2022.11.29 |
---|---|
부트스트랩(Bootstrap)을 이용한 로그인 웹페이지 화면 구현 2 (0) | 2022.11.19 |
대용량 하드 인식, Centos 7 에 2TB 이상의 하드 인식 시키 (1) | 2022.11.16 |
apache 2.2.25 와 PHP 5.2.17 구버전 컴파일 설치 운영 II (0) | 2022.11.12 |
apache 2.2.25 와 PHP 5.2.17 구버전 컴파일 설치 운영 (1) | 2022.11.12 |
댓글