Linux-da Systemctl ulanyp, Systemd hyzmatlaryny we bölümlerini nädip dolandyrmaly
Systemctl, systemd ulgamyna we hyzmat dolandyryjysyna gözegçilik etmek üçin jogapkär systemd kömekçi. “Systemd” ulgam dolandyryş daemonlarynyň, kömekçi enjamlaryň we kitaphanalaryň ýygyndysy bolup, “System V init daemon” -yň ornuny tutýar. Systemd, ulgam ýaly UNIX üçin merkezi dolandyryş we konfigurasiýa platformasy hökmünde işleýär.
Linux-da “Ecosystem Systemd” birnäçe kadadan çykmalar bilen adaty Linux paýlanyşynyň köpüsinde amala aşyryldy. “Systemd” beýleki ähli daemonlaryň esasy prosesi, ýöne hemişe däl.
Bu makala, ulgam ulgamynda işleýän ulgamda\Ulgamy we hyzmatlary nädip dolandyrmalydygyna ünsi çekmegi maksat edinýär.
Systemtd we Systemctl esaslaryndan başlamak
1. Ilki bilen, systemd ulgamyňyza gurlandygyny ýa-da ýokdugyny barlaň, häzirki gurlan Systemd wersiýasy näme?
# systemctl --version systemd 215 +PAM +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ -SECCOMP -APPARMOR
Aboveokardaky mysaldan, systemd 215 wersiýasynyň gurnalandygy aýdyňdyr.
2. systemd we systemctl-iň ikilik we kitaphanalarynyň nirede gurlandygyny barlaň.
# whereis systemd systemd: /usr/lib/systemd /etc/systemd /usr/share/systemd /usr/share/man/man1/systemd.1.gz # whereis systemctl systemctl: /usr/bin/systemctl /usr/share/man/man1/systemctl.1.gz
3. systemd-iň işleýändigini ýa-da işlemeýändigini barlaň.
# ps -eaf | grep [s]ystemd root 1 0 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd --switched-root --system --deserialize 23 root 444 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-journald root 469 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-udevd root 555 1 0 16:27 ? 00:00:00 /usr/lib/systemd/systemd-logind dbus 556 1 0 16:27 ? 00:00:00 /bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation
Üns beriň: systemd ene daemon hökmünde işleýär (PID=1). (-E) bilen ýokardaky buýrukda ähli amallary saýlaň, (-a) doly format sanawy üçin (ýagny -eaf) sessiýa ýolbaşçylaryndan we (-f) -dan başga ähli amallary saýlaň.
Şeýle hem, ýokardaky mysaldaky kwadrat ýaýlara we indiki mysallara üns beriň. Kwadrat ýaýyň aňlatmasy grep-iň nyşan synpynyň gabat gelýän bölegidir.
4. systemd boot prosesini derňäň.
# systemd-analyze Startup finished in 487ms (kernel) + 2.776s (initrd) + 20.229s (userspace) = 23.493s
5. Başlangyçda her prosesiň alýan wagtyny derňäň.
# systemd-analyze blame 8.565s mariadb.service 7.991s webmin.service 6.095s postfix.service 4.311s httpd.service 3.926s firewalld.service 3.780s kdump.service 3.238s tuned.service 1.712s network.service 1.394s lvm2-monitor.service 1.126s systemd-logind.service ....
6. Bootda möhüm zynjyry derňäň.
# systemd-analyze critical-chain The time after the unit is active or started is printed after the "@" character. The time the unit takes to start is printed after the "+" character. multi-user.target @20.222s └─mariadb.service @11.657s +8.565s └─network.target @11.168s └─network.service @9.456s +1.712s └─NetworkManager.service @8.858s +596ms └─firewalld.service @4.931s +3.926s └─basic.target @4.916s └─sockets.target @4.916s └─dbus.socket @4.916s └─sysinit.target @4.905s └─systemd-update-utmp.service @4.864s +39ms └─auditd.service @4.563s +301ms └─systemd-tmpfiles-setup.service @4.485s +69ms └─rhel-import-state.service @4.342s +142ms └─local-fs.target @4.324s └─boot.mount @4.286s +31ms └─[email \x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d19608096 └─dev-disk-by\x2duuid-79f594ad\x2da332\x2d4730\x2dbb5f\x2d85d196080964.device @4
Üns beriň: Systemctl hyzmatlary (.service), gurnama nokadyny (.mount), rozetkalary (.socket) we enjamlary (.device) birlik hökmünde kabul edýär.
7. availablehli elýeterli bölümleri sanaň.
# systemctl list-unit-files UNIT FILE STATE proc-sys-fs-binfmt_misc.automount static dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static tmp.mount disabled brandbot.path disabled .....
8. runninghli işleýän bölümleri sanaň.
# systemctl list-units UNIT LOAD ACTIVE SUB DESCRIPTION proc-sys-fs-binfmt_misc.automount loaded active waiting Arbitrary Executable File Formats File Syste sys-devices-pc...0-1:0:0:0-block-sr0.device loaded active plugged VBOX_CD-ROM sys-devices-pc...:00:03.0-net-enp0s3.device loaded active plugged PRO/1000 MT Desktop Adapter sys-devices-pc...00:05.0-sound-card0.device loaded active plugged 82801AA AC'97 Audio Controller sys-devices-pc...:0:0-block-sda-sda1.device loaded active plugged VBOX_HARDDISK sys-devices-pc...:0:0-block-sda-sda2.device loaded active plugged LVM PV Qzyo3l-qYaL-uRUa-Cjuk-pljo-qKtX-VgBQ8 sys-devices-pc...0-2:0:0:0-block-sda.device loaded active plugged VBOX_HARDDISK sys-devices-pl...erial8250-tty-ttyS0.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS0 sys-devices-pl...erial8250-tty-ttyS1.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS1 sys-devices-pl...erial8250-tty-ttyS2.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS2 sys-devices-pl...erial8250-tty-ttyS3.device loaded active plugged /sys/devices/platform/serial8250/tty/ttyS3 sys-devices-virtual-block-dm\x2d0.device loaded active plugged /sys/devices/virtual/block/dm-0 sys-devices-virtual-block-dm\x2d1.device loaded active plugged /sys/devices/virtual/block/dm-1 sys-module-configfs.device loaded active plugged /sys/module/configfs ...
9. failedhli şowsuz bölümleri sanaň.
# systemctl --failed UNIT LOAD ACTIVE SUB DESCRIPTION kdump.service loaded failed failed Crash recovery kernel arming LOAD = Reflects whether the unit definition was properly loaded. ACTIVE = The high-level unit activation state, i.e. generalization of SUB. SUB = The low-level unit activation state, values depend on unit type. 1 loaded units listed. Pass --all to see loaded but inactive units, too. To show all installed unit files use 'systemctl list-unit-files'.
10. Bölümiň (cron.service) açykdygyny ýa-da ýokdugyny barlaň.
# systemctl is-enabled crond.service enabled
11. Bölümiň ýa-da Hyzmatyň işleýändigini ýa-da ýokdugyny barlaň.
# systemctl status firewalld.service firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled) Active: active (running) since Tue 2015-04-28 16:27:55 IST; 34min ago Main PID: 549 (firewalld) CGroup: /system.slice/firewalld.service └─549 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid Apr 28 16:27:51 tecmint systemd[1]: Starting firewalld - dynamic firewall daemon... Apr 28 16:27:55 tecmint systemd[1]: Started firewalld - dynamic firewall daemon.
Systemctl ulanyp hyzmatlary dolandyrmak we dolandyrmak
12. serviceshli hyzmatlary (işjeň we maýyplary goşmak bilen) sanaň.
# systemctl list-unit-files --type=service UNIT FILE STATE arp-ethers.service disabled auditd.service enabled [email disabled blk-availability.service disabled brandbot.service static collectd.service disabled console-getty.service disabled console-shell.service disabled cpupower.service disabled crond.service enabled dbus-org.fedoraproject.FirewallD1.service enabled ....
13. Linux-da bir hyzmatyň (httpd.service) ýagdaýyny nädip başlamaly, täzeden başlamaly, duruzmaly, täzeden ýüklemeli we barlamaly.
# systemctl start httpd.service # systemctl restart httpd.service # systemctl stop httpd.service # systemctl reload httpd.service # systemctl status httpd.service httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: active (running) since Tue 2015-04-28 17:21:30 IST; 6s ago Process: 2876 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=0/SUCCESS) Main PID: 2881 (httpd) Status: "Processing requests..." CGroup: /system.slice/httpd.service ├─2881 /usr/sbin/httpd -DFOREGROUND ├─2884 /usr/sbin/httpd -DFOREGROUND ├─2885 /usr/sbin/httpd -DFOREGROUND ├─2886 /usr/sbin/httpd -DFOREGROUND ├─2887 /usr/sbin/httpd -DFOREGROUND └─2888 /usr/sbin/httpd -DFOREGROUND Apr 28 17:21:30 tecmint systemd[1]: Starting The Apache HTTP Server... Apr 28 17:21:30 tecmint httpd[2881]: AH00558: httpd: Could not reliably determine the server's fully q...ssage Apr 28 17:21:30 tecmint systemd[1]: Started The Apache HTTP Server. Hint: Some lines were ellipsized, use -l to show in full.
Bellik: systemctl bilen başlamak, täzeden başlamak, duruzmak we täzeden ýüklemek ýaly buýruklary ulananymyzda, terminalda hiç hili netije almarys, ýeke-täk status buýrugy çykyşy çap eder.
14. Hyzmaty nädip işjeňleşdirmeli we ýükleme wagtynda hyzmaty nädip işletmeli ýa-da öçürmeli (ulgam ýüklemesinde awtostart hyzmaty).
# systemctl is-active httpd.service # systemctl enable httpd.service # systemctl disable httpd.service
15. Hyzmatlary nädip maskalamaly (başlamagy mümkin däl edýär) ýa-da hyzmaty açmaly (httpd.service).
# systemctl mask httpd.service ln -s '/dev/null' '/etc/systemd/system/httpd.service' # systemctl unmask httpd.service rm '/etc/systemd/system/httpd.service'
16. systemctl buýrugyny ulanyp hyzmaty nädip öldürmeli.
# systemctl kill httpd # systemctl status httpd httpd.service - The Apache HTTP Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled) Active: failed (Result: exit-code) since Tue 2015-04-28 18:01:42 IST; 28min ago Main PID: 2881 (code=exited, status=0/SUCCESS) Status: "Total requests: 0; Current requests/sec: 0; Current traffic: 0 B/sec" Apr 28 17:37:29 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:29 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:39 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:39 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:49 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:49 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:59 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 17:37:59 tecmint systemd[1]: httpd.service: Got notification message from PID 2881, but recepti...bled. Apr 28 18:01:42 tecmint systemd[1]: httpd.service: control process exited, code=exited status=226 Apr 28 18:01:42 tecmint systemd[1]: Unit httpd.service entered failed state. Hint: Some lines were ellipsized, use -l to show in full.
Systemctl ulanyp, dag nokatlaryna gözegçilik we dolandyrmak
17. systemhli ulgam gurnama nokatlaryny sanaň.
# systemctl list-unit-files --type=mount UNIT FILE STATE dev-hugepages.mount static dev-mqueue.mount static proc-sys-fs-binfmt_misc.mount static sys-fs-fuse-connections.mount static sys-kernel-config.mount static sys-kernel-debug.mount static tmp.mount disabled
18. Ulgam gurnama nokatlaryny nädip gurnamaly, aýyrmaly, aýyrmaly, täzeden ýüklemeli we ulgamdaky gurnama nokatlarynyň ýagdaýyny nädip barlamaly?
# systemctl start tmp.mount # systemctl stop tmp.mount # systemctl restart tmp.mount # systemctl reload tmp.mount # systemctl status tmp.mount tmp.mount - Temporary Directory Loaded: loaded (/usr/lib/systemd/system/tmp.mount; disabled) Active: active (mounted) since Tue 2015-04-28 17:46:06 IST; 2min 48s ago Where: /tmp What: tmpfs Docs: man:hier(7) http://www.freedesktop.org/wiki/Software/systemd/APIFileSystems Process: 3908 ExecMount=/bin/mount tmpfs /tmp -t tmpfs -o mode=1777,strictatime (code=exited, status=0/SUCCESS) Apr 28 17:46:06 tecmint systemd[1]: Mounting Temporary Directory... Apr 28 17:46:06 tecmint systemd[1]: tmp.mount: Directory /tmp to mount over is not empty, mounting anyway. Apr 28 17:46:06 tecmint systemd[1]: Mounted Temporary Directory.
19. Başlangyç wagtynda gurnama nokadyny nädip işjeňleşdirmeli, işletmeli ýa-da öçürmeli (ulgam ýüklemesinde awtomatiki gurnama).
# systemctl is-active tmp.mount # systemctl enable tmp.mount # systemctl disable tmp.mount
20. Linux-da gurnama nokadyny nädip maskalamaly (başlamagy mümkin däl edýär).
# systemctl mask tmp.mount ln -s '/dev/null' '/etc/systemd/system/tmp.mount' # systemctl unmask tmp.mount rm '/etc/systemd/system/tmp.mount'
Systemctl ulanyp rozetkalary dolandyrmak we dolandyrmak
21. availablehli elýeterli ulgam rozetkalaryny sanaň.
# systemctl list-unit-files --type=socket UNIT FILE STATE dbus.socket static dm-event.socket enabled lvm2-lvmetad.socket enabled rsyncd.socket disabled sshd.socket disabled syslog.socket static systemd-initctl.socket static systemd-journald.socket static systemd-shutdownd.socket static systemd-udevd-control.socket static systemd-udevd-kernel.socket static 11 unit files listed.
22. Linux-da rozetkanyň ýagdaýyny (mysal üçin: cups.socket) nädip başlamaly, täzeden başlamaly, duruzmaly, täzeden ýüklemeli we barlamaly.
# systemctl start cups.socket # systemctl restart cups.socket # systemctl stop cups.socket # systemctl reload cups.socket # systemctl status cups.socket cups.socket - CUPS Printing Service Sockets Loaded: loaded (/usr/lib/systemd/system/cups.socket; enabled) Active: active (listening) since Tue 2015-04-28 18:10:59 IST; 8s ago Listen: /var/run/cups/cups.sock (Stream) Apr 28 18:10:59 tecmint systemd[1]: Starting CUPS Printing Service Sockets. Apr 28 18:10:59 tecmint systemd[1]: Listening on CUPS Printing Service Sockets.
23. Soketany nädip işjeňleşdirmeli we ýükleme wagtynda nädip işletmeli ýa-da öçürmeli (ulgam ýüklemesinde awtomatiki rozetka).
# systemctl is-active cups.socket # systemctl enable cups.socket # systemctl disable cups.socket
24. Nädip maskalamaly (başlamagy mümkin däl edýär) ýa-da rozetkany (cups.socket) açmaly.
# systemctl mask cups.socket ln -s '/dev/null' '/etc/systemd/system/cups.socket' # systemctl unmask cups.socket rm '/etc/systemd/system/cups.socket'