在我见过的大多数 shell 脚本中(除了我自己没有写的脚本),我注意到 shebang 设置为#!/bin/sh. 这在旧脚本上并没有让我感到惊讶,但在相当新的脚本上也是如此。
是否有任何理由宁愿/bin/sh过/bin/bash,因为bash几乎是无处不在的,而且往往默认情况下,许多Linux和BSD的机器回去了十多年?
发出关闭命令后,有时会收到如下状态消息:
Run Code Online (Sandbox Code Playgroud)A stop job is running for Session 1 of user xy
然后系统挂起一段时间,或永远取决于 ???
那么究竟什么是“停工”呢?
另外,为什么它有时会非常准确地估计所需的时间,而有时它可以永远运行?
我将创建一个使用用户输入的脚本,所以我决定使用whiptail.
但是现在我有点困惑哪个是可移植的并且可以在 Ubuntu 10.x 及更高版本和 CentOS 5.x 及更高版本上运行。
我知道read,但我想要一个像dialog. 如果有人知道任何替代方案,请告诉我。
使用sudo journalctl -u {service}我可以看到特定服务的日志。
我有一系列脚本,可以用来安装和配置新的 Debian 稳定系统。要自动启动我使用的程序,/etc/rc.local但在其他情况下,我必须手动更改/etc/inittab文件。我还有其他更改,例如添加--noclear到行中1:2345:respawn:/sbin/getty --noclear 38400 tty1。
因为我必须自定义关闭过程,所以我最终这样做了:
l0:0:wait:/etc/rc.halt 0
...
l6:6:wait:/etc/rc.halt 6
Run Code Online (Sandbox Code Playgroud)
我/etc/rc.halt看起来像这样
#!/bin/sh
#
# rc.halt
#
# This script is executed when entering level 6/0 (on halt or reboot)
su - teststand -c "/home/teststand/stop_server.sh" # my custom command
# making sure the halt/reboot process is resumed
test -n "${1}" && /etc/init.d/rc ${1}
exit 0
Run Code Online (Sandbox Code Playgroud)
今天是我第一次安装新的 Debian 8systemd作为默认初始化系统。我没有想到这一点,首先惊讶的是/etc/inittab文件丢失了。
在我正在运行的系统(@work 和 @home)上,我仍在运行我的系统,sysvinit这就是为什么我在systemd. …