Linux 下有 supervisord, Windows 下就没有类似的?各位还有哪些管理服务器的黑科技?

以前服务器上就跑几个程序,每次重启服务器,都是再手动启动程序

通过 Windows 的计划任务或者设置开机启动,能自动启动

但是

如果服务器不重启,程序挂掉了,有类似 supervisord 的监控程序么?

不知道大家在管理服务器方面还有哪些黑科技?比如管理多台服务器、再比如快速部署之类的

谢谢大家

第 1 条附言  ·  2017-08-24 08:43:56 +08:00

那些收藏的 v 友们为什么不顺手给一楼点个感谢?
9 条回复    2017-08-25 16:26:03 +08:00
wxlg1117
    1

wxlg1117   2017-08-24 01:39:44 +08:00 via Android   ❤️ 6

alwaysup 或者 firedaemon,都挺好用
only0jac
    2

only0jac   2017-08-24 08:06:47 +08:00 via Android

@wxlg1117 感谢,前者比后者小很多
hjc4869
    3

hjc4869   2017-08-24 08:18:45 +08:00 via Android

计划任务可以自动重启挂掉的进程。taskschd.dll 可以用 vbs/js 脚本或者 C#/C++等语言调用,也可以 powershell remote,部署起来方便*了。
only0jac
    4

only0jac   2017-08-24 08:42:47 +08:00 via Android

@hjc4869 计划任务只能定时执行或者重启时执行吧?你说的那种是不是基于事件消息?那个事件消息,普通程序挂掉是没有消息的,mysql 有
hjc4869
    5

hjc4869   2017-08-24 09:18:36 +08:00

@only0jac Settings 里有,If the task fails, restart every ____,这个 fails 就是指 task 的那个进程 exit code 不为 0。
当然,你必须让你启动的那个进程一直活着。如果你想监控它子进程的状态,就办不到了。
only0jac
    6

only0jac   2017-08-24 23:40:51 +08:00

@hjc4869 谢谢,不过有缺陷,你说的计划任务 If the task fails,是指在计划任务主动启动程序时,失败的话会再次重试,如果这个程序中途挂掉,就没办法自动拉起来
hjc4869
    7

hjc4869   2017-08-25 00:34:25 +08:00

@only0jac 然而对于一个进程来讲没有所谓的“启动程序时”和“中途”的区分,创建一个进程不管过多久返回非 0 值在 taskschd 看来都是 failed。
only0jac
    8

only0jac   2017-08-25 09:00:48 +08:00 via Android

@hjc4869 多谢,我描述一个场景,比如,服务器正常运行着几个程序,忽然其中一个挂掉了,我希望能自动拉起这个挂掉的程序并邮件通知我
QQ2171775959
    9

QQ2171775959   2017-08-25 16:26:03 +08:00

监控方面,可以利用的工具还是蛮多。阿里监控也可以啊。