2025年2月3日星期一

解决start monitmonit.service is not a native service, redirecting to systemd-sysv-install

原文链接:https://www.chenweiliang.com/cwl-32487.html


🚀 Monit 启动失败?教你 1 分钟解决 systemd-ssyv-install 问题!


💻 Monit 启动失败?提示 “start monitmonit.service is not a native service, redirecting to systemd-sysv-install”?本文手把手教你如何快速修复,让你的 Linux 服务器恢复如常运行!⚡ 适用于 Ubuntu、CentOS、Debian 等系统,简单 3 步搞定!别再为 Monit 头疼了,快来学习吧!🔧


root@hcp:~# sudo systemctl enable monit
sudo systemctl start monitmonit.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable monit

你的错误信息:


monit.service is not a native service, redirecting to systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable monit

意思是monit 不是一个原生的 systemd 服务,而是基于 SysVinit(老式的 init 系统)。


systemctl enable monit 时,systemd 发现 monit 没有 真正的 systemd 服务文件,于是自动调用 systemd-sysv-install 来兼容旧版服务管理方式。


如何解决?


解决start monitmonit.service is not a native service, redirecting to systemd-sysv-install


你有 3 种方法修复这个问题:


方法 1:手动创建 systemd 服务


如果你希望 monit 可以像普通的 systemd 服务那样管理,你可以手动创建 systemd 的 unit 文件




  1. 创建一个 systemd 服务文件


    sudo nano /etc/systemd/system/monit.service



  2. 填入以下内容


    [Unit]
    Description=Pro-active monitoring daemon for Unix systems
    After=network.target

    [Service]

    ExecStart=/usr/bin/monit -I
    ExecReload=/usr/bin/monit reload
    Restart=always
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=monit

    [Install]

    WantedBy=multi-user.target

    解释



    • ExecStart=/usr/bin/monit -I 让 Monit 以 init 方式运行。

    • Restart=always 让 Monit 在崩溃后自动重启。

    • WantedBy=multi-user.target 让它随系统启动。




  3. 保存并退出(按 Ctrl + X,然后 Y 回车)。




  4. 重新加载 systemd 配置


    sudo systemctl daemon-reload



  5. 启用并启动 Monit


    sudo systemctl enable monit
    sudo systemctl start monit



  6. 检查 Monit 运行状态


    sudo systemctl status monit



方法 2:使用老式命令启用 Monit


因为 monit 可能是基于 SysVinit,而不是 systemd,所以你可以用传统 update-rc.d 命令:


sudo update-rc.d monit defaults
sudo update-rc.d monit enable

然后手动启动:


sudo service monit start

检查状态


sudo service monit status

如果这样能成功,那就说明 monit 依赖的是旧版的 init system,而不是 systemd。


方法 3:直接用 monit 命令手动启动


如果你只是想临时运行 Monit,而不考虑开机自启,可以直接运行:


sudo monit

然后检查:


sudo monit status

如果你不需要 systemd 控制它,这样也可以正常使用!


总结



  • 方法 1update-rc.d):适用于基于 SysVinit 的 Monit。

  • 方法 2(手动创建 systemd 服务):适用于希望使用 systemd 管理 Monit 的情况。

  • 方法 3(直接运行 monit):适用于不想改 systemd 配置,只是想让 Monit 运行。


你可以先试 方法 1,如果不行,就用 方法 2 创建 systemd 配置。这样就能完美解决问题了!🚀





欢迎转载《解决start monitmonit.service is not a native service, redirecting to systemd-sysv-install

欢迎分享本文链接:https://www.chenweiliang.com/cwl-32487.html


网站地址:https://www.chenweiliang.com/



欲获取更多资讯内幕和秘技,欢迎进入Telegram频道:https://www.chenweiliang.com/go/tgchannel

没有评论:

发表评论