【问题标题】:showing init.d script echo on console在控制台上显示 init.d 脚本回显
【发布时间】:2016-05-25 16:06:02
【问题描述】:

我在 kali2016.1 框中的 /etc/init.d 中有一个 bash 脚本,它执行一些操作。我的问题如下:以./script {start|stop|restart|} 执行脚本时,控制台上会显示 echo 的输出。但是,当我以 service script {start|stop|restart|*} 运行它时,它会将 echo 输出记录在 /var/log/daemon.log 中。如何更改此行为,以便在将其作为服务执行时,它会继续记录,但还会在控制台上显示回显输出?涵盖了基础知识,内容如下:

    #!/bin/bash
    case "$1" in
      start)
        echo "start"
      ;;
      stop)
        echo "stop"
      ;;
      restart)
        echo "restart"
      ;;
      *)
        echo "usage {start|stop|restart}"
        exit 1
      ;;
    esac
    exit 0

【问题讨论】:

  • 作为守护进程运行,我使用了update-rc.d script defaults

标签: bash echo


【解决方案1】:

你可以echo "foo" > /dev/console

stdout 连接到您的终端时,您会看到输出。根据您的描述,service 命令正在重定向/捕获stdout 并将其发送到系统日志。

看看service - 它可能是一个shell脚本,所以你可以看到发生了什么。

FWIW,在大多数发行版上,包括 CentOS7 和 AWS Linux,service 脚本不会更改 stdout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-22
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-05
    • 2017-06-13
    • 2015-04-01
    相关资源
    最近更新 更多