프로세스가 systemd, init.d 또는 Upstart 제어하에 있는지 알려줍니다.


1

주어진 Linux 프로세스가 init.d 스크립트, Upstart 또는 systemd에 의해 시작되었거나 여전히 관리되고 있다면 신뢰할 수 있습니까?


1
부모 계층 구조에서 알 수 있어야합니다. 가장 쉬운 방법은 트리 뷰에서 시스템 모니터를 사용하는 것입니다. 우분투 15.04에서 찾았습니다. ksysguard 사용하기 가장 쉬울뿐만 아니라 사용할 수 있습니다. gnome-system-monitor. Linux에서 이러한 프로그램을 사용할 수없는 경우 다음을 사용할 수 있습니다. ps -eHl|less 관심있는 프로그램의 트리를 따르십시오.
AFH

나는 그렇게 생각하지 않는다. 보면서 pstree 내 시스템에서 대부분의 프로세스는 부모로부터 분리 된 것처럼 보입니다. 내 데스크톱 세션에서 시작된 프로세스는 매우 적기 때문에 최상위 레벨의 프로세스 대부분은 init deamon에 의해 시작되었을 것입니다.
dronus

나의 pstree 파생 된 모든 것을 보여줍니다. systemd (PID 1) upstart, 그것은 목록의 아래에 잘있다. 나는 같은 것을 얻는다. ps -eHl.
AFH

때문에 systemd 유일한 허용 된 최상위 프로세스 인 PID 1 (맨 위)이 있습니다. systemd의 이러한 동작은 종종 비판을받습니다. 따라서 부모로부터 출시 된 모든 프로세스는 systemd. systemd-free 시스템에서 Upstart 또는 init.d 스크립트를 사용하면 Upstart 또는 init.d 스크립트로 시작되는 대부분의 프로세스에도 불구하고 대부분의 프로세스가 init 바로 아래에 있음을 알 수 있습니다. 시스템 스포츠 시스템에서는 systemd 아래에있는 상위 프로세스가 공개 한 프로세스를 볼 수 있으므로 처음부터 누가 프로세스를 시작했는지 알 수 없습니다.
dronus

죄송합니다. 나는이 행동에 대해 몰랐습니다. 15.04의 대부분 프로세스는 systemd 조상으로서, 이것은 내가 읽은 것과 일치하는 것으로 보인다. systemd 대부분 대체 됨 upstart 15.04에 그런데, 그냥 제쳐두고, 나는 두 가지 최상위 프로세스가있는 것 같습니다 : 일부 KDE 프로세스를 실행하기 때문에 또한 kthreadd (PID 2), 또한 부모는 없지만 많은 아이들이 있습니다.
AFH

답변:


1

systemd를 사용하면 프로세스가 속한 cgroup을보고 프로세스가 속한 systemd 서비스를 찾을 수 있습니다.

예 :

$ ps -eo pid,comm,cgroup | grep dhclient
6476 dhclient 8:devices:/system.slice NetworkManager.service,1:name=systemd:/system.slice/NetworkManager.service

당신에게 dhclient 프로세스는 NetworkManager.servicesystemd에 의해 관리됩니다.

이므로:

$ ps -eo pid,comm,cgroup | grep firefox
3302 firefox 8:devices:/user.slice,1:name=systemd:/user.slice/user-1000.slice/session-c2.scope

이 Firefox 프로세스가 UID 1000을 사용하여 사용자가 시작한 세션의 일부임을 보여줍니다.

initscripts 또는 Upstart 작업에 의해 시작된 프로세스는 수동으로 시작된 다른 백그라운드 프로세스와 구별 할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.