Dav*_*vid 4 arch-linux systemd
我的 Arch Linux 的 systemd 会rpcbind自动启动。我该怎么做才能停止systemd这样做?中没有远程文件系统/etc/fstab。我发现 rpcbind 启动的唯一原因是多用户目标需要它,但目录中没有服务。我怎样才能弄清楚为什么它真的开始了?
你最好的办法是掩盖服务:
systemctl mask rpcbind.serviceRun Code Online (Sandbox Code Playgroud)
有关屏蔽的详细信息,请参阅 Lennart Poettering 的系列博文,systemd for Administrators,第 V 部分:
3. 你可以屏蔽一个服务。这就像禁用服务一样,但是是在类固醇上。它不仅可以确保服务不再自动启动,甚至可以确保服务甚至无法再手动启动。这是 systemd 中的一个隐藏功能,因为它并不常用,并且可能会使用户感到困惑。但这是你如何做到的:
Run Code Online (Sandbox Code Playgroud) 通过符号链接服务文件,$ ln -s /dev/null /etc/systemd/system/ntpd.service $ systemctl daemon-reload/dev/null告诉 systemd 永远不要启动有问题的服务并完全阻止其执行。存储在/etc/systemd/system其中的单元文件会覆盖那些/lib/systemd/system带有相同名称的单元文件。前一个目录是管理员区域,后一个目录是您的包管理器。通过在/etc/systemd/system/ntpd.service您中安装符号链接,确保 systemd 永远不会读取上游提供的服务文件/lib/systemd/system/ntpd.service。
systemd 将识别符号链接的单元/dev/null并将它们显示为蒙版。如果您尝试手动启动此类服务(例如通过 systemctl start),这将失败并显示错误。
如果不存在,wanted/rpcbind.service它很可能不会直接启动,而是通过套接字激活启动。您可以通过在状态输出行中查找indirect而不是在状态输出行中查找来判断它是否是最近启动的(请注意,会自动将 添加到单元名称中,因为它未包含在命令行中):staticLoadedsystemctl.service
$ systemctl status rpcbind\n\xe2\x97\x8f rpcbind.service - RPC bind service\n Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)\n Active: active (running) since Fri 2017-03-31 15:39:29 WIB; 37min ago\n Main PID: 6763 (rpcbind)\n CGroup: /system.slice/rpcbind.service\n \xe2\x94\x94\xe2\x94\x806763 /sbin/rpcbind -w\nRun Code Online (Sandbox Code Playgroud)\n\n无论如何,您可以检查是否启用了套接字激活:
\n\n$ systemctl status rpcbind.socket\n\xe2\x97\x8f rpcbind.socket - RPCbind Server Activation Socket\n Loaded: loaded (/usr/lib/systemd/system/rpcbind.socket; disabled; vendor preset: enabled)\n Active: active (listening) since Fri 2017-03-31 15:39:29 WIB; 37min ago\n Listen: /var/run/rpcbind.sock (Stream)\n [::]:111 (Stream)\n 0.0.0.0:111 (Stream)\nRun Code Online (Sandbox Code Playgroud)\n\n(在上面的示例中,我禁用了该单元,但尚未停止rpcbind在收到请求时启动的现有侦听器。)
执行以下命令应该杀死两者并确保它们永远不会启动:
\n\n$ systemctl disable rpcbind.service rpcbind.socket\n$ systemctl stop rpcbind.service rpcbind.socket\nRun Code Online (Sandbox Code Playgroud)\n\n然后状态检查应该产生如下内容:
\n\n$ systemctl status rpcbind.service rpcbind.socket\n\xe2\x97\x8f rpcbind.service - RPC bind service\n Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled)\n Active: inactive (dead) since Fri 2017-03-31 16:17:05 WIB; 49s ago\n Main PID: 6763 (code=exited, status=0/SUCCESS)\n\n[...log messages...]\nMar 31 16:17:05 myhost systemd[1]: Stopped RPC bind service.\n\n\xe2\x97\x8f rpcbind.socket - RPCbind Server Activation Socket\n Loaded: loaded (/usr/lib/systemd/system/rpcbind.socket; disabled; vendor preset: enabled)\n Active: inactive (dead) since Fri 2017-03-31 16:17:48 WIB; 6s ago\n Listen: /var/run/rpcbind.sock (Stream)\n [::]:111 (Stream)\n 0.0.0.0:111 (Stream)\n\n[...log messages...]\nMar 31 16:17:48 myhost systemd[1]: Closed RPCbind Server Activation Socket.\nMar 31 16:17:48 myhost systemd[1]: Stopping RPCbind Server Activation Socket.\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
14222 次 |
| 最近记录: |