You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ifplugd报错"Incorrect action argument"且自定义脚本$2为空如何修复

错误诱因

  1. ifplugd.action语法错误:down分支结束后缺少case语句必需的结束标记;;,导致无论传入的动作参数是up还是down,执行完对应分支的run-parts逻辑后都会继续落入*)错误分支,抛出「Incorrect action argument」报错,同时脚本异常退出。
  2. run-parts执行规则限制:run-parts默认会忽略文件名包含特殊后缀(如.sh)、带点号、不符合^[a-zA-Z0-9_-]+$规则的脚本,你命名的ping.sh带了.sh后缀,默认不会被run-parts执行,自然无法触发ping逻辑,手动单独执行脚本时没有传入参数就会出现$2为空的情况。

修复方案

步骤1:修复ifplugd.action的语法错误

在down分支末尾添加;;分隔符,修正后的脚本如下:

#!/bin/sh
set -e
case "$2" in
up)
   run-parts --arg="$1" --arg="$2" /etc/ifplugd/action.d/
   ;;
down)
   run-parts --reverse --arg="$1" --arg="$2" /etc/ifplugd/action.d/
   ;;
*)
   echo "ifplugd.action: Incorrect action argument" >&2
   exit 1
   ;;
esac

修正后给脚本加执行权限:
chmod +x /etc/ifplugd/ifplugd.action

步骤2:调整ping脚本命名符合run-parts规则

把/etc/ifplugd/action.d/ping.sh重命名为不带后缀的文件名,同时授予执行权限:

mv /etc/ifplugd/action.d/ping.sh /etc/ifplugd/action.d/ping_action
chmod +x /etc/ifplugd/action.d/ping_action

步骤3:重启ifplugd服务生效

systemctl restart ifplugd

完成以上操作后插拔网线即可正常触发up分支的ping逻辑,同时不会再抛出参数错误。

内容的提问来源于stack exchange,提问作者tha duck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 23:09:04