Я использовал Ubuntu 16.04. И я нахожу, что некоторые сервисы покажут CPU и использование памяти через systemctl status <name>.service
:
$ systemctl status nginx
● nginx.service - LSB: Stop/start nginx
Loaded: loaded (/etc/init.d/nginx; bad; vendor preset: enabled)
Active: active (running) since 五 2017-04-07 09:21:25 CST; 4h 59min ago
Docs: man:systemd-sysv-generator(8)
Process: 2677 ExecStart=/etc/init.d/nginx start (code=exited, status=0/SUCCESS)
Tasks: 2
Memory: 2.5M
CPU: 12ms
CGroup: /system.slice/nginx.service
├─2695 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.con
└─2697 nginx: worker process
Но на другом хосте, я нахожу systemctl status
не покажет CPU и использование памяти:
$ systemctl status nginx
● nginx.service - LSB: Stop/start nginx
Loaded: loaded (/etc/init.d/nginx; bad; vendor preset: enabled)
Active: active (running) since 四 2017-04-06 20:57:15 CST; 17h ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/nginx.service
├─29668 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.con
├─29669 nginx: worker process
├─29670 nginx: worker process
├─29671 nginx: worker process
└─29672 nginx: worker process
Почему? Оба из nginx
были установлены от nginx официального repo apt install -y nginx
. Даже при том, что на том же хосте, некоторые сервисы не покажут CPU и использование памяти.
И как показать CPU и использование памяти в systemctl состоянии?
Я понятия не имею, почему некоторые хосты могли, но некоторые не могли, если Вы хотите последовательное поведение, необходимо включить память, составляющую единый блок или по умолчанию для всех единиц путем установки:
DefaultMemoryAccounting=yes
в /etc/systemd/system.conf
и затем выполнение:
systemctl daemon-reexec
Проверьте этот поток списка от systemd разработчиков и systemd-system.conf[5].
Его на самом деле менее сложный, чем Вы думают. Для наблюдения чего-то нестатического как ЦП или использование памяти необходимо использовать команду: watch systemctl status <name>.service
Иногда это могло бы помочь добавлению этих 2 опций в Вашем .service файле под [Сервисом] блок
CPUAccounting = да
MemoryAccounting = да