Rud*_*ser 17 mysql arch-linux systemd
我正在运行一个 Arch Linux(最新的、最新的)机器,并试图让 MySQL 在启动时启动。安装 systemd 软件包后,我可以使用 systemctl,因此我可以执行以下操作:
systemctl start mysqld.service
systemctl [stop|status|restart] mysqld.service
Run Code Online (Sandbox Code Playgroud)
这一切都很好,当我想手动启动/停止时效果很好,但是,当它在启动时启动时(通过在 systemctl 上使用“启用”,我得到了一些令人讨厌的输出):
[root@rudivarch ~]# systemctl enable mysqld.service
Failed to issue method call: No such file or directory
Run Code Online (Sandbox Code Playgroud)
显然,由于其他命令工作得很好,我对此感到非常困惑并且花了很多时间试图弄清楚...... systemctl status 输出这个:
[root@rudivarch ~]# systemctl status mysqld.service
mysqld.service
Loaded: loaded (/etc/rc.d/mysqld)
Active: inactive (dead) since Tue, 31 Jan 2012 15:32:28 +0000; 1min 25s ago
Process: 589 ExecStop=/etc/rc.d/mysqld stop (code=exited, status=0/SUCCESS)
Process: 257 ExecStart=/etc/rc.d/mysqld start (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/mysqld.service
Run Code Online (Sandbox Code Playgroud)
任何人都对为什么“启用”不起作用有任何想法?
use*_*686 20
mysqld.service
是一个“虚拟”单元——它不存在于文件系统中,它只是 systemd 兼容层的一部分。您可以启动它,systemd 将运行旧的/etc/rc.d/mysqld
initscript,但您不能这样systemctl enable
做,因为您需要一个.service
可以符号链接到正确位置的真实文件。
您可以自己编写这样一个单元并将其放入/etc/systemd/system/mysqld.service
:
[单元] 描述=MySQL服务器 之后=网络.目标 [服务] ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock 用户=mysql 组=mysql 工作目录=/usr [安装] WantedBy=multi-user.target
systemctl daemon-reload
创建/修改后运行。
或者,您可以安装initscripts-systemd
包,其中包括arch-daemons.target
用于自动启动rc.conf
. 但是,这个包可能很快就会消失,并且最好为正在使用的 init 系统提供本机配置文件。
归档时间: |
|
查看次数: |
52118 次 |
最近记录: |