我在 Ubuntu 中创建了一个新贵脚本,认为它对 Debian 来说也是一样的。但是 Debian 没有/etc/init
Ubuntu 有的文件夹。我去了 upstart下载页面,看到他们有软件包,做了一个apt-get install upstart
,但它要求删除 sysvinit,我知道这会/可能会搞砸我的系统。那么如何让我的 Ubuntu 脚本在 Debian 上运行呢?
我记得最近的事情是将软硬内存锁 ulimit 更改为无限制。现在我无法通过 ssh 进入机器。
这是 ssh 日志。
Authenticated to IP ([IP]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
debug2: channel 0: request pty-req confirm 1
debug1: Sending environment.
debug1: Sending env LC_CTYPE =
debug2: channel 0: request env confirm 0
debug2: channel 0: request shell confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 …
Run Code Online (Sandbox Code Playgroud) 这是我的 bash 脚本。它所做的只是检查服务是否已启动以及某些进程是否按预期运行。
它以“终止”消息突然结束。我尝试用set -x
flag调试它,但我仍然不知道发生了什么问题。Stack Overflow 和 Google 没有向我展示任何其他有类似问题的人。
该脚本的权限为 755。出于显而易见的原因,一些命令被混淆。
#!/bin/bash
set -x
DAEMON_BIN=/etc/init.d/init-god
DAEMON_BIN_START="${DAEMON_BIN} start"
DAEMON_BIN_STOP="${DAEMON_BIN} stop"
SOME_VARIABLE="foo"
CHEF_CONFIG_FILE_PATH="/path/to/file"
NODE_INFO_FILE="/mnt/node_info/properties"
function get_key_value (){
value=$(grep -Po "(?<=^${1}:).*" ${NODE_INFO_FILE})
echo $value;
}
eval $DAEMON_BIN_STOP
nohup pkill DAEMON &> /dev/null
nohup pkill -f resque &> /dev/null
eval $DAEMON_BIN_START
sleep 15
PROCESS_COUNT=`ps aux | awk '/[p]rocess-name/' | wc -l`
NODE_NAME=`get_key_value node_name`
if [[ $NODE_NAME -eq $SOME_VARIABLE && $PROCESS_COUNT -eq 1 ]]; then
echo "DAEMON and scheduler are running fine." ; …
Run Code Online (Sandbox Code Playgroud) 你推荐哪个?一些需要考虑的 POV:
[注意] 这个问题原本是 Debian 5 "lenny" 和 Debian 6 "squeeze" 之间的推荐请求。我修改了它以使其更通用。