我实际上正在使用 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
。但您必须使用systemctl
或service
来控制它。运行/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