我用systemd创建了一个服务,该服务使用wendy(inotify替换工具(在目录中侦听,并在发生更改时运行bash脚本。
但是,我的脚本在某个特定时间依赖stdin来读取变量。但是,当服务运行时,它会跳过在终端中向我询问输入,并继续执行bash脚本的其余部分。
我是systemd和服务的新手,有没有办法强迫它征求我的意见?
这是/var/log/syslog 中发生的情况
10月7日21:52:09服务器wendy.sh[13062]:已添加到脚本中。
10月7日21:52:09服务器wendy.sh[13062]:输入脚本名:(/home/user/scripts/blah.sh(
10月7日21:52:09服务器wendy.sh[13062]:chmod:+x 后缺少操作数
10月7日21:52:09服务器wendy.sh[13062]:有关详细信息,请尝试"chmod--help"。
它本应该要求我给chmod取一个名字。
如何做到这一点?
谢谢
不幸的是,在作为后台任务运行的脚本中请求用户输入非常困难,因为它们没有附加终端。我建议您尝试找到从stdin读取输入的替代方法。
如果您真的想实现这一点,例如,您可以在某个地方运行一个侦听UNIX套接字的程序,并且您的自动化脚本可以与该客户端通信以请求输入(参见本Stack Exchange文章(。
对于netcat openbsd,有一个-U选项。如果你没有,你可能安装了netcat传统;我建议换一下。
示例命令:nc-U/var/run/socket