我在nodejs应用程序中使用redis进行会话支持.我已经安装了redis服务器,它在我运行redis-server时工作,但是当我关闭终端时redis停止并且不起作用.如何让redis服务器永远运行?
我最近完成了Wiki Web开发教程(http://golang.org/doc/articles/wiki/).我有很多乐趣,我想尝试更多的net/http包.
但是,我注意到当我从控制台运行wiki时,wiki会接管控制台.如果我关闭控制台终端或停止进程,CTRL+Z则服务器停止.
如何让服务器在后台运行?我认为这个术语是在一个守护进程中运行的.
我在Ubuntu 12.04上运行它.谢谢你的帮助.
据我所知,从书籍和bash手册中可以看出.当用户从bash注销时,如果用户未使用nohup或disown,则用户启动的所有后台作业将自动终止.但今天我测试了它:
终端中有两个选项卡,其中一个我创建了一个名为test的新用户并以test身份登录
su - test
Run Code Online (Sandbox Code Playgroud)开始写一个剧本.
cat test.sh
#!/bin/bash
sleep 60
printf "hello world!!"
exit 0
./test.sh &
Run Code Online (Sandbox Code Playgroud)之后我退出测试并关闭了标签
这是怎么回事?
我有一个非常简单的 bash 脚本。我希望这个 bash 脚本在我从终端注销后继续运行,因为它正在监视一些服务。但是,我遇到的问题是,一旦我退出终端,进程就会终止。
我运行这个过程:
nohup ./test.sh > test.log &
Run Code Online (Sandbox Code Playgroud)
我使用以下方法检查过程:
ps -aux | grep test.sh
Run Code Online (Sandbox Code Playgroud)
当我运行该进程时,我会检查脚本是否正在运行。但是,当我重新连接时,脚本不再运行。
test.sh文件内容如下:
#!/bin/bash
while :
do
echo `date`": ****** Scheduled Test *****"
result1=$(wget "127.0.0.1" -q -O -)
result2=$(wget "127.0.0.1" -q -O -)
echo ": $result1"
echo ": $result2"
if [[ $result1 == *"Running OK"* ]] && [[ $result2 == *"Running OK"* ]];
then
echo "***** Running OK ***** :)"
sleep 60
continue
fi
echo "@@@@@ Not Running @@@@@"
echo "-----> Killing JARS"
kill …Run Code Online (Sandbox Code Playgroud) 我有一个在 centos 机器上运行的 python 程序。我使用 virtualenv (source activate) 来激活特定的 python,然后使用以下命令:
gunicorn -t 10000 -b 0.0.0.0:1234 start:app &
Run Code Online (Sandbox Code Playgroud)
效果很好。但是当我关闭 bash 时,我的程序就不再工作了。当我打开一个新的bash(通过PUTTY)并输入
ps -C gunicorn
Run Code Online (Sandbox Code Playgroud)
我看到gunicorn进程正在运行。如果我将所有这些放在 local.rc 上(与服务器一起初始化),一切都会正常工作。
我有两个问题。第一个是:
我可以在gunicorn上放置一个“永远”(就像我们在node.js上放置的那样),或者从bash中分离gunicorn和virtualenv,以便始终独立于关闭bash运行吗?
我怎么解决这个问题?
我将这个问题放在stackoverflow上,因为我已经在这里找到了很多有关该主题的问题。
简短介绍
简单地说,nohup可用于在后台运行应用程序,并在用户注销或关闭终端或ssh会话后保持其运行,例如
这里有很多关于stackoverflow的示例问题,例如this或that。
我的问题很简单。
为什么选择了nohup,当有类似的选项upstart,systemd......其管理的应用作为服务于更方便的方式(运行级别,...)?
阅读有关相似主题的许多问题,唯一的选择似乎是nohup。几乎从来没有答案是这样的:“ ...使用暴发户脚本,因此一切都由您完成...”
我主要使用eg upstart,除了可能用于快速而肮脏的测试场景。
我缺少重要的东西吗?