为什么新贵不断刷新我的流程?

热情的

我编写了一个新贵的脚本来在tmux会话中启动守护程序。它可以很好地工作,并且如果意外死机,可以重新生成该过程,但是我似乎无法手动停止它。

这项工作(称为bukkit)如下所示:

start on filesystem
stop on runlevel [!2345]

respawn
respawn limit 5 30

chdir /home/minecraft/bukkit

expect daemon
kill timeout 30

pre-start script
    test -x /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar || { stop; exit 0; }
end script

pre-stop script
    tmux send -t bukkit "stop"
    tmux send -t bukkit "Enter"
    sleep 10  # Wait for server to shut down properly
end script

exec tmux new-session -d -s minecraft -n bukkit "sudo -u minecraft -- /home/minecraft/java/jre1.6.0_27/bin/java -Xincgc -Xmx1G -jar /home/minecraft/bukkit/craftbukkit-0.0.1-SNAPSHOT.jar"

当我发出a时,stop bukkit它会冻结约10秒钟(我想是睡眠计时器)并打印bukkit start/running, process 2391当我设置upstart进行调试时,我在日志中找到了以下相关行:

Sep 21 19:14:59 cheftest init: bukkit goal changed from start to stop
Sep 21 19:14:59 cheftest init: bukkit main process (2499) exited normally
Sep 21 19:14:59 cheftest init: bukkit main process ended, respawning
Sep 21 19:14:59 cheftest init: bukkit goal changed from stop to respawn

为什么新贵在应该停止它的过程中会不断重生我的过程?

ase语

这里的困难是“重生”与预停止脚本的结合,该脚本告诉过程停止。从init(5):

   respawn
         A service or task with this stanza will be automatically started
         if it should stop abnormally.  All reasons for a service stopping,
         except the stop(8) command itself, are considered abnormal.  Tasks
         may exit with a zero exit status to prevent being respawned.

关于是否以零退出状态退出会引起重生的问题,文档尚不清楚。但是,从根本上讲,您已经发现了一个新贵的bug,因为在目标为“停止”时结束的主要过程不应导致对“重生”的更改。

要解决此错误,您应该能够使用“正常退出”来告诉新贵,这是停止工作的正常方法,并且不应重生。

  normal exit STATUS|SIGNAL...
         Additional exit statuses or even signals may be added, if the
         job process terminates with any of these it will not be considered
         to have failed and will not be respawned.

         normal exit 0 1 TERM HUP

请注意,通常,用信号(如果需要,指定“ kill signal N”)终止进程,而不是使用发出命令的停止前进程,则更健壮。但是,当然,如果服务不支持在收到信号后彻底关机,则这并非总是可能的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么新贵文档阻止我使用重生

来自分类Dev

为什么新贵文档阻止我使用重生

来自分类Dev

为什么要不断刷新页面?

来自分类Dev

为什么我的形象不断重复?

来自分类Dev

为什么我不断得到Null?

来自分类Dev

为什么我不断收到NoSuchElementException?

来自分类Dev

为什么我的ActionListener不断重复?

来自分类Dev

为什么我的命名管道不断被修改?

来自分类Dev

为什么我的代码不断抛出KeyError?

来自分类Dev

为什么我不断收到预期声明

来自分类Dev

Android:为什么我的onResume()DialogInterface不断循环不断?

来自分类Dev

为什么新贵无法使用“未知工作:juju-ubuntu-0”启动我的juju服务?

来自分类Dev

为什么新贵无法使用“未知工作:juju-ubuntu-0”启动我的juju服务?

来自分类Dev

为什么Primefaces不刷新我的按钮?

来自分类Dev

什么是新贵?

来自分类Dev

为什么我的行号在Android Studio中不断消失?

来自分类Dev

为什么.lesshst不断出现在我的〜

来自分类Dev

为什么wiredep不断删除我的凉亭组件?

来自分类Dev

为什么我不断下载meteor-tool 1.3.1

来自分类Dev

Python while循环不断缩短我的清单!为什么?

来自分类Dev

为什么我不断收到禁止PayPal使用的403?

来自分类Dev

为什么git不断向我抛出“合并”警告消息?

来自分类Dev

为什么我的CPU的时钟速度不断下降?

来自分类Dev

MySQL不断重启(但我不确定为什么)

来自分类Dev

为什么我的程序不断发出GET请求?

来自分类Dev

为什么我不断收到此错误“错误:意外类型”

来自分类Dev

为什么Ubuntu会不断询问我的gmail密码?

来自分类Dev

PyGame不断崩溃,我不知道为什么

来自分类Dev

为什么我的哈希表程序不断崩溃?

Related 相关文章

  1. 1

    为什么新贵文档阻止我使用重生

  2. 2

    为什么新贵文档阻止我使用重生

  3. 3

    为什么要不断刷新页面?

  4. 4

    为什么我的形象不断重复?

  5. 5

    为什么我不断得到Null?

  6. 6

    为什么我不断收到NoSuchElementException?

  7. 7

    为什么我的ActionListener不断重复?

  8. 8

    为什么我的命名管道不断被修改?

  9. 9

    为什么我的代码不断抛出KeyError?

  10. 10

    为什么我不断收到预期声明

  11. 11

    Android:为什么我的onResume()DialogInterface不断循环不断?

  12. 12

    为什么新贵无法使用“未知工作:juju-ubuntu-0”启动我的juju服务?

  13. 13

    为什么新贵无法使用“未知工作:juju-ubuntu-0”启动我的juju服务?

  14. 14

    为什么Primefaces不刷新我的按钮?

  15. 15

    什么是新贵?

  16. 16

    为什么我的行号在Android Studio中不断消失?

  17. 17

    为什么.lesshst不断出现在我的〜

  18. 18

    为什么wiredep不断删除我的凉亭组件?

  19. 19

    为什么我不断下载meteor-tool 1.3.1

  20. 20

    Python while循环不断缩短我的清单!为什么?

  21. 21

    为什么我不断收到禁止PayPal使用的403?

  22. 22

    为什么git不断向我抛出“合并”警告消息?

  23. 23

    为什么我的CPU的时钟速度不断下降?

  24. 24

    MySQL不断重启(但我不确定为什么)

  25. 25

    为什么我的程序不断发出GET请求?

  26. 26

    为什么我不断收到此错误“错误:意外类型”

  27. 27

    为什么Ubuntu会不断询问我的gmail密码?

  28. 28

    PyGame不断崩溃,我不知道为什么

  29. 29

    为什么我的哈希表程序不断崩溃?

热门标签

归档