Before you develop a marketing strategy, you should ask yourself what your business strategy is. Your marketing strategy should be based on your business strategy and brand strategy. Your marketing strategy is not equal to your business strategy.
判断linux系统中的服务管理命令是service还是systemctl
作为网站维护人员,经常要管理客户linux系统中运行的一些服务,例如mysql,nginx等。然而客户的linux系统版本不同,甚至是不同的distribution,因此我经常会遇到一个问题,到底这个linux的服务管理命令是service还是systemctl呢?
一开始我会用以下办法来解决这个问题,那就是查看当前linux系统的distribution及版本号。因为我在网上经常看到CentOS 6重启mysql的命令是 service mysql restart,CentOS 7的是 systemctl restart mysql。查看linux系统distribution及版本号的命令是 lsb_release -a 。如下图所示,当前linux系统为CentOS 7,所以可以用systemctl来管理系统中运行的服务。
大部分情况下这个办法是可行的,但有时候系统中无法使用 lsb_release -a 命令,且linux的distribution也不只有CentOS,还有RedHat、Debian、Ubuntu等。要记住这些distribution版本号对应的服务管理命令也不是不可能,我相信大部分人不会这样做的。
还有一种办法就是尝试,两个命令都试一遍,哪个正确就用哪个。这种办法避免不了会看到一些报错信息,非常不符合系统维护人员精准控制的感觉。
直到我了解到,linux系统中的服务管理程序跟init进程有关系,这个问题才算得到彻底的解决。
计算机从按开机键到系统启动的流程,在流程启动的最后一步就是启动系统的第一个用户态进程init进程,其进程ID永为1。目前比较流行的init进程分为三种:sysvinit、upstart、systemd。使用命令 pstree 就能看到当前的linux系统的init进程。通常我们见到的init进程是sysvinit和systemd,对应系统可以使用的命令是service和systemctl。
例如:
可用的服务管理命令是service。
可用的服务管理命令是systemctl。