我为 proftpd(最新稳定版本,自己编译)编写了一个小型初始化脚本,并注意到即使服务器启动失败(例如,在我的情况下,由于 SSH 端口冲突),可执行文件也会以状态 0 退出。
- 它不应该以 > 0 退出吗?或者,
- 脚本如何检测启动是否成功,除了休眠任意时间并检查 PID?
# ./proftpd # echo $? //returns 0
…但在 /var/log/messages 中:
1 月 27 日 12:20:15 staging3 proftpd[9103]: - 无法绑定到 0.0.0.0,端口 22:地址已在使用中 1 月 27 日 12:20:15 staging3 proftpd[9103]: - 检查 ServerType 指令以确保您配置正确。
谢谢-nikita
答案1
正如您所建议的,如果您不能依赖返回代码,那么您必须检查 PID(或者检查端口 22 是否正在使用,或者其他任何技巧)。
./proftpd &
echo 'the PID is ' $!
答案2
该问题已在 ProFTPD 中提出并解决;请参阅错误#3752。