diff --git a/docs/conversions/version.md b/docs/conversions/version.md index 06b2e17cb..490c8e4a7 100644 --- a/docs/conversions/version.md +++ b/docs/conversions/version.md @@ -104,9 +104,21 @@ git merge release-v3.1 # Push the updates to the main branch git push origin main ``` +## Release Process + +``` +Publishing v3.2.0: A Step-by-Step Guide +(1) Create the tag v3.2.0-alpha.0 from the main branch. +(2) Bugs are fixed on the main branch. Once the bugs are resolved, tag the main branch as v3.2.0-rc.0. +(3) After further testing, if v3.2.0-rc.0 is deemed stable, create a branch named release-v3.2 from the tag v3.2.0-rc.0. +(4) From the release-v3.2 branch, create the tag v3.2.0. At this point, the official release of v3.2.0 is complete. + +After the release of v3.2.0, if urgent bugs are discovered, fix them on the release-v3.2 branch. Then, submit two pull requests (PRs) to both the main and release-v3.2 branches. Tag the release-v3.2 branch as v3.2.1. +``` Throughout this process, active communication within the team is pivotal to maintaining transparency and consensus on changes. ## Docker Images Version Management For more details on managing Docker image versions, visit [OpenIM Docker Images Administration](https://github.com/OpenIMSDK/Open-IM-Server/blob/main/docs/conversions/images.md). + diff --git a/go.mod b/go.mod index c2f8093e7..bdcf4ba01 100644 --- a/go.mod +++ b/go.mod @@ -37,7 +37,7 @@ require ( require github.com/google/uuid v1.3.0 require ( - github.com/OpenIMSDK/protocol v0.0.10 + github.com/OpenIMSDK/protocol v0.0.12 github.com/OpenIMSDK/tools v0.0.13 github.com/aliyun/aliyun-oss-go-sdk v2.2.8+incompatible github.com/go-redis/redis v6.15.9+incompatible diff --git a/go.sum b/go.sum index 1b9d43ec9..bc56bf686 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7Biccwk firebase.google.com/go v3.13.0+incompatible h1:3TdYC3DDi6aHn20qoRkxwGqNgdjtblwVAyRLQwGn/+4= firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwjt8toICdV5Wh9ptHs= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/OpenIMSDK/protocol v0.0.10 h1:OiJR2BAAJjuKKK8KPxYZdJCwOSzMMxwF5fnJdOmLPdQ= -github.com/OpenIMSDK/protocol v0.0.10/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= +github.com/OpenIMSDK/protocol v0.0.12 h1:79rBgpKBF4TMy5tkLH3DQNiZFVmxKMP7VyX+kmJh4d8= +github.com/OpenIMSDK/protocol v0.0.12/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= github.com/OpenIMSDK/tools v0.0.13 h1:rcw4HS8S2DPZR9UOBxD8/ol9UBMzXBypzOVEytDRIMo= github.com/OpenIMSDK/tools v0.0.13/go.mod h1:eg+q4A34Qmu73xkY0mt37FHGMCMfC6CtmOnm0kFEGFI= github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409/go.mod h1:1pk82RBxDY/JZnPQrtqHlUFfCctgdorsd9M06fMynOM= diff --git a/go.work.sum b/go.work.sum index 8ae1c5cc7..bf1661eb9 100644 --- a/go.work.sum +++ b/go.work.sum @@ -221,8 +221,7 @@ cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv cloud.google.com/go/workflows v1.11.1 h1:2akeQ/PgtRhrNuD/n1WvJd5zb7YyuDZrlOanBj2ihPg= cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= -github.com/OpenIMSDK/protocol v0.0.10 h1:OiJR2BAAJjuKKK8KPxYZdJCwOSzMMxwF5fnJdOmLPdQ= -github.com/OpenIMSDK/protocol v0.0.10/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= +github.com/OpenIMSDK/protocol v0.0.12/go.mod h1:F25dFrwrIx3lkNoiuf6FkCfxuwf8L4Z8UIsdTHP/r0Y= github.com/QcloudApi/qcloud_sign_golang v0.0.0-20141224014652-e4130a326409 h1:DTQ/38ao/CfXsrK0cSAL+h4R/u0VVvfWLZEOlLwEROI= github.com/alecthomas/kingpin/v2 v2.3.1 h1:ANLJcKmQm4nIaog7xdr/id6FM6zm5hHnfZrvtKPxqGg= github.com/alecthomas/kingpin/v2 v2.3.1/go.mod h1:oYL5vtsvEHZGHxU7DMp32Dvx+qL+ptGn6lWaot2vCNE= diff --git a/internal/api/msg.go b/internal/api/msg.go index da749b0ae..9df3a04b6 100644 --- a/internal/api/msg.go +++ b/internal/api/msg.go @@ -363,3 +363,6 @@ func (m *MessageApi) GetActiveGroup(c *gin.Context) { func (m *MessageApi) SearchMsg(c *gin.Context) { a2r.Call(msg.MsgClient.SearchMessage, m.Client, c) } +func (m *MessageApi) GetServerTime(c *gin.Context) { + a2r.Call(msg.MsgClient.GetServerTime, m.Client, c) +} diff --git a/internal/api/route.go b/internal/api/route.go index f961489a3..0a0201d43 100644 --- a/internal/api/route.go +++ b/internal/api/route.go @@ -82,7 +82,7 @@ func NewGinRouter(discov discoveryregistry.SvcDiscoveryRegistry, rdb redis.Unive userRouterGroup.POST("/get_users", ParseToken, u.GetUsers) userRouterGroup.POST("/get_users_online_status", ParseToken, u.GetUsersOnlineStatus) userRouterGroup.POST("/get_users_online_token_detail", ParseToken, u.GetUsersOnlineTokenDetail) - userRouterGroup.POST("/subscribe_users_status", ParseToken, u.UnSubscriberStatus) + userRouterGroup.POST("/subscribe_users_status", ParseToken, u.SubscriberStatus) userRouterGroup.POST("/unsubscribe_users_status", ParseToken, u.UnSubscriberStatus) userRouterGroup.POST("/get_users_status", ParseToken, u.GetUserStatus) userRouterGroup.POST("/get_subscribe_users_status", ParseToken, u.GetSubscribeUsersStatus) @@ -187,6 +187,7 @@ func NewGinRouter(discov discoveryregistry.SvcDiscoveryRegistry, rdb redis.Unive msgGroup.POST("/batch_send_msg", m.BatchSendMsg) msgGroup.POST("/check_msg_is_send_success", m.CheckMsgIsSendSuccess) + msgGroup.POST("/get_server_time", m.GetServerTime) } // Conversation conversationGroup := r.Group("/conversation", ParseToken) diff --git a/internal/rpc/msg/sync_msg.go b/internal/rpc/msg/sync_msg.go index 390299dbd..9c06f3c7c 100644 --- a/internal/rpc/msg/sync_msg.go +++ b/internal/rpc/msg/sync_msg.go @@ -188,3 +188,6 @@ func (m *msgServer) SearchMessage(ctx context.Context, req *msg.SearchMessageReq resp.ChatLogsNum = total return resp, nil } +func (m *msgServer) GetServerTime(ctx context.Context, _ *msg.GetServerTimeReq) (*msg.GetServerTimeResp, error) { + return &msg.GetServerTimeResp{ServerTime: utils.GetCurrentTimestampByMill()}, nil +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index a16a16bb2..a1cb0db09 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -299,7 +299,7 @@ func (s *userServer) SetUserStatus(ctx context.Context, req *pbuser.SetUserStatu FromUserID: value.UserID, ToUserID: userID, Status: value.Status, - PlatformID: value.PlatformID, + PlatformID: value.PlatformIDs[0], } s.userNotificationSender.UserStatusChangeNotification(ctx, tips) } diff --git a/pkg/common/convert/msg.go b/pkg/common/convert/msg.go index 7708d7535..59070d338 100644 --- a/pkg/common/convert/msg.go +++ b/pkg/common/convert/msg.go @@ -78,6 +78,7 @@ func MsgDB2Pb(msgModel *unrelation.MsgDataModel) *sdkws.MsgData { msg.SendTime = msgModel.SendTime msg.CreateTime = msgModel.CreateTime msg.Status = msgModel.Status + msg.IsRead = msgModel.IsRead msg.Options = msgModel.Options if msgModel.OfflinePush != nil { msg.OfflinePushInfo = &sdkws.OfflinePushInfo{ diff --git a/pkg/common/db/cache/user.go b/pkg/common/db/cache/user.go index 05374cc5f..ce7f18242 100644 --- a/pkg/common/db/cache/user.go +++ b/pkg/common/db/cache/user.go @@ -21,6 +21,8 @@ import ( "strconv" "time" + "github.com/OpenIMSDK/protocol/constant" + "github.com/OpenIMSDK/protocol/user" "github.com/OpenIMSDK/tools/errs" @@ -37,6 +39,7 @@ const ( olineStatusKey = "ONLINE_STATUS:" userOlineStatusExpireTime = time.Second * 60 * 60 * 24 statusMod = 501 + platformID = "_PlatformIDSuffix" ) type UserCache interface { @@ -92,6 +95,10 @@ func (u *UserCacheRedis) getUserGlobalRecvMsgOptKey(userID string) string { return userGlobalRecvMsgOptKey + userID } +func (u *UserCacheRedis) getUserStatusHashKey(userID string, Id int32) string { + return userID + "_" + string(Id) + platformID +} + func (u *UserCacheRedis) GetUserInfo(ctx context.Context, userID string) (userInfo *relationTb.UserModel, err error) { return getCache( ctx, @@ -177,9 +184,9 @@ func (u *UserCacheRedis) GetUserStatus(ctx context.Context, userIDs []string) ([ if err == redis.Nil { // key or field does not exist res = append(res, &user.OnlineStatus{ - UserID: userID, - Status: 0, - PlatformID: -1, + UserID: userID, + Status: constant.Offline, + PlatformIDs: nil, }) continue } else { @@ -211,12 +218,74 @@ func (u *UserCacheRedis) SetUserStatus(ctx context.Context, list []*user.OnlineS if err != nil { return errs.Wrap(err) } - _, err = u.rdb.HSet(ctx, key, status.UserID, string(jsonData)).Result() - if err != nil { - return errs.Wrap(err) - } - if isNewKey > 0 { + if isNewKey == 0 { + _, err = u.rdb.HSet(ctx, key, status.UserID, string(jsonData)).Result() + if err != nil { + return errs.Wrap(err) + } u.rdb.Expire(ctx, key, userOlineStatusExpireTime) + } else { + result, err := u.rdb.HGet(ctx, key, status.UserID).Result() + if err != nil { + return errs.Wrap(err) + } + var onlineStatus user.OnlineStatus + err = json.Unmarshal([]byte(result), &onlineStatus) + if err != nil { + return errs.Wrap(err) + } + onlineStatus.UserID = status.UserID + if status.Status == constant.Offline { + var newPlatformIDs []int32 + for _, val := range onlineStatus.PlatformIDs { + if val != status.PlatformIDs[0] { + newPlatformIDs = append(newPlatformIDs, val) + } + } + if newPlatformIDs == nil { + onlineStatus.Status = constant.Offline + onlineStatus.PlatformIDs = nil + newjsonData, err := json.Marshal(&onlineStatus) + if err != nil { + return errs.Wrap(err) + } + _, err = u.rdb.HSet(ctx, key, status.UserID, string(newjsonData)).Result() + if err != nil { + return errs.Wrap(err) + } + } else { + onlineStatus.PlatformIDs = newPlatformIDs + newjsonData, err := json.Marshal(&onlineStatus) + if err != nil { + return errs.Wrap(err) + } + _, err = u.rdb.HSet(ctx, key, status.UserID, string(newjsonData)).Result() + if err != nil { + return errs.Wrap(err) + } + } + } else { + onlineStatus.Status = constant.Online + // Judging whether to be kicked out. + flag := false + for _, val := range onlineStatus.PlatformIDs { + if val == status.PlatformIDs[0] { + flag = true + break + } + } + if !flag { + onlineStatus.PlatformIDs = append(onlineStatus.PlatformIDs, status.PlatformIDs[0]) + } + newjsonData, err := json.Marshal(&onlineStatus) + if err != nil { + return errs.Wrap(err) + } + _, err = u.rdb.HSet(ctx, key, status.UserID, string(newjsonData)).Result() + if err != nil { + return errs.Wrap(err) + } + } } } return nil diff --git a/pkg/common/db/s3/minio/minio.go b/pkg/common/db/s3/minio/minio.go index 9137f7b75..1f848d1b4 100644 --- a/pkg/common/db/s3/minio/minio.go +++ b/pkg/common/db/s3/minio/minio.go @@ -84,6 +84,7 @@ func NewMinio() (s3.Interface, error) { init: false, } if conf.SignEndpoint == "" || conf.SignEndpoint == conf.Endpoint { + m.opts = opts m.sign = m.core.Client } else { su, err := url.Parse(conf.SignEndpoint) diff --git a/pkg/rpcclient/notification/user.go b/pkg/rpcclient/notification/user.go index 5712cb053..3b9383323 100644 --- a/pkg/rpcclient/notification/user.go +++ b/pkg/rpcclient/notification/user.go @@ -16,11 +16,13 @@ package notification import ( "context" + + "github.com/OpenIMSDK/protocol/constant" + "github.com/OpenIMSDK/protocol/sdkws" + "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/controller" relationTb "github.com/OpenIMSDK/Open-IM-Server/pkg/common/db/table/relation" "github.com/OpenIMSDK/Open-IM-Server/pkg/rpcclient" - "github.com/OpenIMSDK/protocol/constant" - "github.com/OpenIMSDK/protocol/sdkws" ) type UserNotificationSender struct { diff --git a/pkg/rpcclient/user.go b/pkg/rpcclient/user.go index 3c24efbbd..2fdeb134f 100644 --- a/pkg/rpcclient/user.go +++ b/pkg/rpcclient/user.go @@ -158,6 +158,6 @@ func (u *UserRpcClient) GetAllUserIDs(ctx context.Context, pageNumber, showNumbe } func (u *UserRpcClient) SetUserStatus(ctx context.Context, userID string, status int32, platformID int) error { - _, err := u.Client.SetUserStatus(ctx, &user.SetUserStatusReq{StatusList: []*user.OnlineStatus{{UserID: userID, Status: status, PlatformID: int32(platformID)}}}) + _, err := u.Client.SetUserStatus(ctx, &user.SetUserStatusReq{StatusList: []*user.OnlineStatus{{UserID: userID, Status: status, PlatformIDs: []int32{int32(platformID)}}}}) return err } diff --git a/scripts/check_all.sh b/scripts/check_all.sh index ea9c2b5b7..4939057ca 100755 --- a/scripts/check_all.sh +++ b/scripts/check_all.sh @@ -58,7 +58,7 @@ done #Check launched service process check=$(ps aux | grep -w ./${openim_msgtransfer} | grep -v grep | wc -l) -if [ $check -eq ${msg_transfer_service_num} ]; then +if [ $check -ge ${msg_transfer_service_num} ]; then echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTransfer"${COLOR_SUFFIX} else echo $check ${msg_transfer_service_num} diff --git a/scripts/msg_gateway_start.sh b/scripts/msg_gateway_start.sh index 49d84fac5..f5aa00a4e 100755 --- a/scripts/msg_gateway_start.sh +++ b/scripts/msg_gateway_start.sh @@ -50,11 +50,11 @@ if [ ${#rpc_ports[@]} -ne ${#ws_ports[@]} ]; then fi #Check if the service exists #If it is exists,kill this process -check=$(ps aux | grep -w ./${openim_msggateway} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - oldPid=$(ps aux | grep -w ./${openim_msggateway} | grep -v grep | awk '{print $2}') - kill -9 ${oldPid} -fi +#check=$(ps aux | grep -w ./${openim_msggateway} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# oldPid=$(ps aux | grep -w ./${openim_msggateway} | grep -v grep | awk '{print $2}') +# kill -9 ${oldPid} +#fi #Waiting port recycling sleep 1 cd ${msg_gateway_binary_root} @@ -78,5 +78,5 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${allNewPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${allPorts}${COLOR_SUFFIX} else - echo -e ${BACKGROUND_GREEN}${openim_msggateway}${COLOR_SUFFIX}${RED_PREFIX}"\n SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} + exit -1 fi diff --git a/scripts/msg_transfer_start.sh b/scripts/msg_transfer_start.sh index 46c077c5d..c0a24104a 100755 --- a/scripts/msg_transfer_start.sh +++ b/scripts/msg_transfer_start.sh @@ -37,12 +37,12 @@ prome_ports=($ports_array) #Check if the service exists #If it is exists,kill this process -check=`ps | grep -w ./${openim_msgtransfer} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -oldPid=`ps | grep -w ./${openim_msgtransfer} | grep -v grep|awk '{print $2}'` - kill -9 $oldPid -fi +#check=`ps | grep -w ./${openim_msgtransfer} | grep -v grep| wc -l` +#if [ $check -ge 1 ] +#then +#oldPid=`ps | grep -w ./${openim_msgtransfer} | grep -v grep|awk '{print $2}'` +# kill -9 $oldPid +#fi #Waiting port recycling sleep 1 @@ -58,15 +58,15 @@ for ((i = 0; i < ${msg_transfer_service_num}; i++)); do done #Check launched service process -check=`ps | grep -w ./${openim_msgtransfer} | grep -v grep| wc -l` +check=`ps -axu| grep -w ./${openim_msgtransfer} | grep -v grep| wc -l` if [ $check -ge 1 ] then -newPid=`ps | grep -w ./${openim_msgtransfer} | grep -v grep|awk '{print $2}'` +newPid=`ps -axu| grep -w ./${openim_msgtransfer} | grep -v grep|awk '{print $2}'` allPorts="" echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${openim_msgtransfer}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${newPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${allPorts}${COLOR_SUFFIX} else - echo -e ${BACKGROUND_GREEN}${openim_msgtransfer}${COLOR_SUFFIX}${RED_PREFIX}"\n SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} + exit -1 fi diff --git a/scripts/push_start.sh b/scripts/push_start.sh index b474e1b99..d3c2f9a8f 100755 --- a/scripts/push_start.sh +++ b/scripts/push_start.sh @@ -44,11 +44,11 @@ prome_ports=($ports_array) #Check if the service exists #If it is exists,kill this process -check=$(ps | grep -w ./${push_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - oldPid=$(ps | grep -w ./${push_name} | grep -v grep | awk '{print $2}') - kill -9 $oldPid -fi +#check=$(ps | grep -w ./${push_name} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# oldPid=$(ps | grep -w ./${push_name} | grep -v grep | awk '{print $2}') +# kill -9 $oldPid +#fi #Waiting port recycling sleep 1 cd ${push_binary_root} @@ -60,9 +60,9 @@ done sleep 3 #Check launched service process -check=$(ps | grep -w ./${push_name} | grep -v grep | wc -l) +check=$(ps -axu| grep -w ./${push_name} | grep -v grep | wc -l) if [ $check -ge 1 ]; then - newPid=$(ps | grep -w ./${push_name} | grep -v grep | awk '{print $2}') + newPid=$(ps -axu| grep -w ./${push_name} | grep -v grep | awk '{print $2}') ports=$(netstat -netulp | grep -w ${newPid} | awk '{print $4}' | awk -F '[:]' '{print $NF}') allPorts="" @@ -74,5 +74,5 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${newPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${allPorts}${COLOR_SUFFIX} else - echo -e ${BACKGROUND_GREEN}${push_name}${COLOR_SUFFIX}${RED_PREFIX}"\n SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} + exit -1 fi diff --git a/scripts/start_all.sh b/scripts/start_all.sh index bb68546c7..9159dde9c 100755 --- a/scripts/start_all.sh +++ b/scripts/start_all.sh @@ -85,7 +85,7 @@ echo -e "" ./$component_check if [ $? -ne 0 ]; then # Print error message and exit - echo -e "${BOLD_PREFIX}${RED_PREFIX}Error executing ${component_check}. Exiting...${COLOR_SUFFIX}" + echo -e "${RED_PREFIX}${BOLD_PREFIX}Error executing ${component_check}. Exiting...${COLOR_SUFFIX}" exit -1 fi @@ -104,7 +104,7 @@ for i in ${need_to_start_server_shell[*]}; do # Check if the script executed successfully if [ $? -ne 0 ]; then # Print error message and exit - echo "${BOLD_PREFIX}${RED_PREFIX}Error executing ${i}. Exiting...${COLOR_SUFFIX}" + echo -e "${RED_PREFIX}${BOLD_PREFIX}Error executing ${i}. Exiting(please check open-im-server/logs/openIM.log)... ${COLOR_SUFFIX}" exit -1 fi done diff --git a/scripts/start_cron.sh b/scripts/start_cron.sh index ddd3661ae..41b86b4a4 100755 --- a/scripts/start_cron.sh +++ b/scripts/start_cron.sh @@ -35,11 +35,11 @@ logs_dir="$OPENIM_ROOT/logs" #Check if the service exists #If it is exists,kill this process check=`ps | grep -w ./${cron_task_name} | grep -v grep| wc -l` -if [ $check -ge 1 ] -then -oldPid=`ps | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` - kill -9 $oldPid -fi +#if [ $check -ge 1 ] +#then +#oldPid=`ps | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` +# kill -9 $oldPid +#fi #Waiting port recycling sleep 1 @@ -50,15 +50,15 @@ nohup ./${cron_task_name} >>$OPENIM_ROOT/logs/openIM.log 2>&1 & #done #Check launched service process -check=`ps | grep -w ./${cron_task_name} | grep -v grep| wc -l` +check=`ps -axu| grep -w ./${cron_task_name} | grep -v grep| wc -l` if [ $check -ge 1 ] then -newPid=`ps | grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` +newPid=`ps -axu| grep -w ./${cron_task_name} | grep -v grep|awk '{print $2}'` allPorts="" echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${cron_task_name}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${newPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${BACKGROUND_GREEN}${allPorts}${COLOR_SUFFIX} else - echo -e ${BACKGROUND_GREEN}${cron_task_name}${COLOR_SUFFIX}${RED_PREFIX}"\n SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} + exit -1 fi diff --git a/scripts/start_rpc_service.sh b/scripts/start_rpc_service.sh index 51e13298f..a26f6cf87 100755 --- a/scripts/start_rpc_service.sh +++ b/scripts/start_rpc_service.sh @@ -78,14 +78,14 @@ for ((i = 0; i < ${#service_filename[*]}; i++)); do service_name="ps |grep -w ${service_filename[$i]} |grep -v grep" count="${service_name}| wc -l" - if [ $(eval ${count}) -gt 0 ]; then - pid="${service_name}| awk '{print \$2}'" - echo "${service_filename[$i]} service has been started,pid:$(eval $pid)" - echo "killing the service ${service_filename[$i]} pid:$(eval $pid)" - #kill the service that existed - kill -9 $(eval $pid) - sleep 0.5 - fi +# if [ $(eval ${count}) -gt 0 ]; then +# pid="${service_name}| awk '{print \$2}'" +# echo "${service_filename[$i]} service has been started,pid:$(eval $pid)" +# echo "killing the service ${service_filename[$i]} pid:$(eval $pid)" +# #kill the service that existed +# kill -9 $(eval $pid) +# sleep 0.5 +# fi cd $OPENIM_ROOT cd $BIN_DIR # Get the rpc port in the configuration file diff --git a/scripts/style_info.sh b/scripts/style_info.sh index 452240035..bc04c84b5 100755 --- a/scripts/style_info.sh +++ b/scripts/style_info.sh @@ -61,6 +61,7 @@ function style-info() { BACKGROUND_LIGHT_PURPLE="\033[105m" # Light purple background BACKGROUND_LIGHT_SKY_BLUE="\033[106m" # Light sky blue background BACKGROUND_LIGHT_WHITE="\033[107m" # Light white background + } style-info \ No newline at end of file