서비스를 실행할 때 rsyslog가 나열되지 않는 이유는 무엇입니까?

서비스를 실행할 때 rsyslog가 나열되지 않는 이유는 무엇입니까?

rsyslog를 이해하려고합니다. 내 Linux 컴퓨터 중 하나에서는 rsyslog다음 출력을 기반으로 systemd를 통해 실행되도록 구성되어 있는 것 같습니다 .

>systemctl status rsyslog
rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled)
   Active: active (running) since Tue 2017-01-10 11:28:07 PST; 3 months 19 days ago
 Main PID: 954 (rsyslogd)
   CGroup: /system.slice/rsyslog.service
           L954 /sbin/rsyslogd -n

>ps ax | grep syslog
  954 ?        Ssl    6:22 /sbin/rsyslogd -n

그러나 다른 Linux 상자에서는 systemv(systemctl이 존재하지 않음)가 실행 중인지 인식하지 못하는 것 같습니다 rsyslogd.

[root@box ~]# service --status-all | grep -i syslog 2>&1
[root@box ~]# ps ax | grep -i syslog
 7866 ?        Sl     1:49 /sbin/rsyslogd -n -c5 -i /var/run/syslogd.pid

왜 그런 격차가 있습니까?

service두 번째 상자에서 rsyslogd가 실행 중이지만 명령줄에서 "수동으로" 생성되었고 serviceinit.d 스크립트 중 하나를 통해 구성되지 않았음을 "발견"하지 않았다는 사실이 있습니까 ? (내 용어가 원시적이라면 죄송합니다).

내가 실제로 달성하려고 하는 것은 다음 과 같습니다. 두 번째 상자에서 rsyslog를 다시 시작하고 싶고 service rsyslog restart.service --status-all

박스 1 구성:

>uname -a
Linux box1 3.11.10-301.fc20.x86_64 #1 SMP Thu Dec 5 14:01:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
>lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: Fedora
Description:    Fedora release 20 (Heisenbug)
Release:        20
Codename:       Heisenbug

박스 2 구성:

Linux box2 2.6.37+ #2 Tue Apr 18 03:07:09 PDT 2017 armv7l GNU/Linux

답변1

명령줄에서가 아니라 아마도 다른 초기화 스크립트에서 나온 것일 수 있습니다. 옛날에는 이런 명령이 있었죠

 $ sudo bash -c "find / -xdev -type f -print0 -size -1M | xargs -0 grep rsyslog"

아니면 아마도,

$ sudo bash
# find / -xdev -type f -print0 -size -1M | xargs -0 grep rsyslog

시스템의 모든 파일을 탐색하여 필요한 문자열이 포함된 일반 파일을 찾습니다. find의 -mount 옵션은 이를 /proc에서 제외하고 이제 grep은 파일이 해당 문자열을 포함하는 바이너리 파일로 나타날 때 로그를 기록할 만큼 똑똑합니다. -print0은 xargs의 -0 옵션과 함께 작동하며 파서를 혼란스럽게 할 수 있는 홀수 문자, 공백이 있는 파일을 올바르게 처리하도록 보장합니다. "-size -1M"을 사용하면 1MB 이하의 파일만 볼 수 있습니다. 이 크기보다 큰 파일은 관심을 끌 가능성이 거의 없습니다. rsyslog는 스크립트에서 시작될 가능성이 높습니다.

물론 또 다른 가능성도 있습니다. 즉, 프로그램이 원격으로 시작되는 것입니다. 특정 키에 바인딩된 ssh 스크립트에서 rsyslog를 시작하는 사람을 쉽게 상상할 수 있으며 그렇게만 수행하면 쉘을 얻지 못할 수도 있습니다. 이 작업을 수행하는 요점은 시스템을 수신할 때 시스템에서 syslogd를 실행해야 하는 경우입니다. 로그는 그것을 얻는 것입니다.

pstree와 같은 명령은 자식이 무엇인지 보여주고 부모에서 쉽게 빠져나와 init에 의해 상속되도록 할 수 있습니다.

관련 정보