mysql.service 的 systemd 脚本位于哪里?

mysql.service 的 systemd 脚本位于哪里?

我实际上正在使用 MariaDB(MySQL 的替代品)。

我正在尝试对我的 systemd mysql.service 文件进行一些更改。

我可以看到它存在,因为运行 sudo systemctl 列出了它并表明它已加载/活动/正在运行。

问题是我找不到要编辑的文件。从我读过的各种文章中,我发现该文档应该位于

/etc/systemd/system/multi-user.target.wants/mysql.service

但事实并非如此。我浏览了 /etc/systemd 级别的其他目录,但无济于事。有什么想法吗?

答案1

对于静态文件中定义的单元,您可以使用systemctl status,通过发出该命令输出的信息,您将能够看到它的位置。

例如:

# systemctl  status sshd
● sshd.service - OpenSSH Daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2016-10-31 17:01:01 UTC; 1 weeks 0 days ago
 Main PID: 283 (sshd)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/sshd.service
           └─290 /usr/bin/sshd -D

请注意,tab 命令在这里可能会有帮助。

因此,在我的系统中,systemd 服务位于 下/usr/lib/systemd/。请注意,该位置可能有文件夹。

另一种方法是使用find特定位置的命令来查找服务:

# find /usr/lib/systemd/ | grep -i mysql

我希望这有帮助;)

答案2

systemd init 脚本的默认位置是:

/lib/systemd/system

但修改它们的首选方法是创建自定义脚本:

/etc/systemd/system

后一个文件夹中的脚本将覆盖前一个位置的脚本。

答案3

在您的特定情况下,可能是因为 MySQL 没有 systemd 服务文件,而只有 SystemV init 脚本/etc/init.d/mysql。但您必须使用systemctlservice来控制它。运行/etc/init.d/mysql stop会让 systemd 认为它已崩溃并重新启动它。

不确定较新的 Ubuntu 是否也会这样,但较旧的版本肯定会这样。

答案4

我使用 ubuntu 16.04!修改 /etc/security/limit.conf 和 /etc/mysql/my.cnf 后,运行并
sudo systemctl edit mysql.service

添加以下行

[Service]
LimitNOFILE=infinity

相关内容