Linux systemctl 常用用法简介
主要介绍systemctl的几个功能如下:
1.查看某个服务的状态
2.关闭某个服务
3.开启某个服务
4.设置某个为开机自启动
5.关闭某个服务为开机不启动
6.查看所有开启启动的服务
1.查看某个服务的状态
用法:systemctl status 需要查询的服务 例如 mariadb.service 注意Actice
[root@localhost linux]# systemctl status mariadb.service
● mariadb.service - MariaDB database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2017-05-10 09:48:44 EDT; 19min ago
Process: 2203 ExecStartPost=/usr/libexec/mariadb-wait-ready $MAINPID (code=exited, status=0/SUCCESS)
Process: 1057 ExecStartPre=/usr/libexec/mariadb-prepare-db-dir %n (code=exited, status=0/SUCCESS)
Main PID: 2198 (mysqld_safe)
CGroup: /system.slice/mariadb.service
├─2198 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
└─2445 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/...
May 10 09:48:25 localhost.localdomain systemd[1]: Starting MariaDB database server...
May 10 09:48:29 localhost.localdomain mysqld_safe[2198]: 170510 09:48:29 mysqld_safe Logging to '/var/log...g'.
May 10 09:48:29 localhost.localdomain mysqld_safe[2198]: 170510 09:48:29 mysqld_safe Starting mysqld daem...sql
May 10 09:48:44 localhost.localdomain systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost linux]#
其实查看状态还可以用ps查询
ps aux 是查询所有进程grep是提取需要的行
[root@localhost linux]# ps aux | grep mariadb
mysql 4987 1.2 2.1 839268 83484 ? Sl 10:11 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 5022 0.0 0.0 112648 952 pts/1 S+ 10:11 0:00 grep --color=auto mariadb
[root@localhost linux]#
2.关闭某个服务
[root@localhost linux]# systemctl stop mariadb.service
[root@localhost linux]#
再次查看其状态 可见 已经关闭完成了
[root@localhost linux]# ps aux | grep -v grep | grep mariadb.service
[root@localhost linux]#
3.开启某个服务
[root@localhost linux]# systemctl start mariadb.service
[root@localhost linux]#
查看服务是否启动
[root@localhost linux]# ps aux | grep mariadb
mysql 5247 0.3 2.1 839268 83488 ? Sl 10:17 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
root 5287 0.0 0.0 112648 952 pts/1 S+ 10:18 0:00 grep --color=auto mariadb
[root@localhost linux]#
[root@localhost linux]#
[root@localhost linux]# ps aux | grep mariadb | grep -v grep
mysql 5247 0.3 2.1 839268 83488 ? Sl 10:17 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
4.设置某个服务为开机自启动
[root@localhost linux]# systemctl is-enabled mariadb.service
enabled
[root@localhost linux]#
5.关闭某个服务为开机不启动
[root@localhost linux]# systemctl disable mariadb.service
Removed symlink /etc/systemd/system/multi-user.target.wants/mariadb.service.
[root@localhost linux]#
6.查看所有开启启动的服务
[root@localhost linux]# ls /etc/systemd/system/multi-user.target.wants/
abrt-ccpp.service auditd.service kdump.service postfix.service sysstat.service
abrtd.service chronyd.service libstoragemgmt.service remote-fs.target tuned.service
abrt-oops.service crond.service mdmonitor.service rngd.service vmtoolsd.service
abrt-vmcore.service cups.path ModemManager.service rsyslog.service vsftpd.service
abrt-xorg.service cups.service NetworkManager.service smartd.service
atd.service irqbalance.service nfs-client.target sshd.service
[root@localhost linux]#
可见,刚刚禁止之后,这个文件中就没有了mariadb.service
[root@localhost linux]# ls /etc/systemd/system/multi-user.target.wants/mariadb.service
ls: cannot access /etc/systemd/system/multi-user.target.wants/mariadb.service: No such file or directory
[root@localhost linux]#
现在利用systemctl将mariadb.service设置为开机自启动
[root@localhost linux]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@localhost linux]#
再次写ls语句
[root@localhost linux]# ls /etc/systemd/system/multi-user.target.wants/mariadb.service
/etc/systemd/system/multi-user.target.wants/mariadb.service
[root@localhost linux]#