Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux ubuntu 9.10服务器版上的启动脚本总是崩溃_Linux_Bash_Scripting_Runlevel - Fatal编程技术网

Linux ubuntu 9.10服务器版上的启动脚本总是崩溃

Linux ubuntu 9.10服务器版上的启动脚本总是崩溃,linux,bash,scripting,runlevel,Linux,Bash,Scripting,Runlevel,我为Ubuntu9.10 server edition编写了一个启动脚本,它在启动时启动,并对路径中指定的目录进行rsync,我以旧的方式启动,从init.d链接脚本并将其置于运行级别,它正在工作,所以我可以在启动时启动它,但过了一段时间,我的脚本的服务没有运行。5分钟后,当系统启动时,它会在中间崩溃,脚本中的代码只是一行rsync,我确信这不是问题所在,因此我必须再次调用脚本来启动It服务?这有什么问题?有人能帮忙吗?我没有足够的信息来解决您的问题,但我建议您将rsync的stderr导入日志

我为Ubuntu9.10 server edition编写了一个启动脚本,它在启动时启动,并对路径中指定的目录进行rsync,我以旧的方式启动,从init.d链接脚本并将其置于运行级别,它正在工作,所以我可以在启动时启动它,但过了一段时间,我的脚本的服务没有运行。5分钟后,当系统启动时,它会在中间崩溃,脚本中的代码只是一行rsync,我确信这不是问题所在,因此我必须再次调用脚本来启动It服务?这有什么问题?有人能帮忙吗?

我没有足够的信息来解决您的问题,但我建议您将rsync的stderr导入日志文件,并尝试找出哪里出了问题。也可以尝试打开“-v”以显示详细信息。例如:

rsync ...blabla... -v 2>&1  | cat > /tmp/rsync.log

大约是这样。

检查您的
/var/log/
目录中的日志条目——我几乎不知道我应该知道的,但我希望它会杀死任何运行五分钟的
/etc/init.d/rc*
任务。初始化脚本应该使用
start-stop-daemon
来启动长时间运行的特定程序。(这样,这些程序可以在重新启动或关闭时正常关闭。)但是脚本本身应该在一秒钟左右的时间内运行


我建议编写一个实际的
upstart
管理脚本,并将其放入
/etc/init/
中,而不是使用init脚本。我认为upstart不会消失:)所以你最好习惯它。

另外,试着从shell中手动运行rsync,使用完全相同的参数(和权限),看看会发生什么。这是一个很大的UOOC!尝试
rsync。。。2> /tmp/rsync.log
rsync…>/tmp/rsync.log 2>&1
。我有一个启动-停止-重新启动状态守护程序,但在启动过程中,如果我检查状态,它会启动,服务会运行,但几分钟后服务就会停止,这是我关心的问题,为什么要这样做?catvsrat:我想sarnold想说的是-可能是因为rsync启动服务的时间超过了upstart的时间限制,然后在它完成之前就终止了它。哦,好吧,但我最近意识到我的脚本只有在我对rsync指定的路径做了一些更改时才会失败,非常奇怪,有什么猜测吗?@catvsrat,@sinelaw完美地解释了这一点——路径差可能是upstart假设任务正确执行与假设任务已挂起并应终止之间的时间差。请注意,
start-stop-daemon
是一个特定的工具,并且
start-stop-restart-daemon
不存在。我希望那只是你的打字错误;)但如果不是这样,我建议您学习
启动-停止守护进程
,如果您打算将此脚本保留为initscript,而不是将其作为一个upstart任务重写。按照@sinelaw推荐的方式记录输出是否成功?