我在iMX7双开发板上运行Linux 4.9.11-1.0.0。我有一个test.sh
要在启动时运行的文件。当前它只有一堆echo
语句(仅用于测试目的)。
当我轻按板上的开关以将其打开时,我看到了一大堆初始化内容。我希望文件中的echo
语句test.sh
也可以在启动时按此初始化顺序显示。最终,一旦工作成功,计划就是做些实际的工作来代替简单的echo
陈述。我只想确保脚本此时在启动时运行。
到目前为止,我已经创建了该test.sh
文件,并且在主板启动后就能够手动运行它。我/etc/rc.local
在出口语句末尾之前将以下内容添加到了我的文件中:
sh '/home/root/test.sh'
我已验证此rc.local
文件#!/bin/sh -e
位于顶部。我也做了:
$ chown root /etc/rc.local
$ chmod 777 /etc/rc.local
完成所有操作后,我通过键入以下命令验证了它应该可以正常工作:
$ /etc/init.d/rc.local start
到现在为止,一切都按预期进行,echo
当我执行最后一步时,我正在查看语句。但是,当我尝试重新启动电路板时,echo
在打印的初始化资料中根本看不到这些语句。
我想念什么?也许它实际上是在启动时运行的,但是由于某种原因我看不到输出?
如果您已完成所有操作(例如chmod +x /etc/rc.local
您的命令正在运行),则不会在您可以看到的任何地方记录日志。
这是我的/etc/rc.local
:
$ cat /etc/rc.local
#!/bin/bash
touch /var/lock/subsys/local
echo "hickory stick"
在这里,我使用了修改后的Bash,它记录到syslog中,我在另一篇U&L问答中讨论了该问题:将bash历史记录发送到syslog。
当我的系统启动时,我看到通过Bash记录以下消息:
/var/log/bash-log/127.0.0.1.log:2018-07-24T22:04:24.609094-04:00 centos7 rc.local:山核桃木棍
但是没有别的地方。要将其记录到syslog / rsyslog中,通常可以使用以下logger
命令:
$ logger hi
然后,您可以在/var/log/messages
或/var/log/syslog
或中看到它journal -xef
。在这里,我使用日志记录:
$ journalctl -xef
Jul 24 20:23:04 centos7 bash[1629]: HISTORY: PID=1629 UID=0 USER=root CMD=man logger
Jul 24 20:23:24 centos7 bash[1629]: HISTORY: PID=1629 UID=0 USER=root CMD=logger hi
Jul 24 20:23:24 centos7 vagrant[1811]: hi
您应该能够用来logger
捕获脚本中命令的输出,如下所示:
$ cat /etc/rc.local
#!/bin/bash
touch /var/lock/subsys/local
echo "hickory stick" | logger
现在,当我们重新启动时:
$ journalctl -xef
...
Jul 24 20:31:41 centos7 bash[1629]: HISTORY: PID=1629 UID=0 USER=root CMD=journalctl -xe
Jul 24 22:24:00 centos7 logger[1286]: hickory stick
Jul 24 22:24:00 centos7 sshd[1270]: Server listening on 0.0.0.0 port 22.
Jul 24 22:24:00 centos7 sshd[1270]: Server listening on :: port 22.
Jul 24 22:24:00 centos7 systemd[1]: Starting Permit User Sessions...
我们通过logger
添加到中看到了我们的消息/etc/rc.local
。
logger
是一个非常有用的工具,您可以将其记录到文件中而不是通过-f
开关,也可以使用开关控制显示在日志中的标签-t
。
$ logger -t "smurfs" hi
$ journalctl -xe | grep smurfs
Jul 24 20:38:24 centos7 smurfs[1764]: hi
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句