예제 #1
0
        public virtual bool StartServer(string strServerName)
        {
            ServerInfo refServerInfo = m_refServerInfoMgr.Find(strServerName);

            if (null == refServerInfo)
            {
                return(false);
            }

            if (0 == refServerInfo.WorldID || 0 == refServerInfo.ServerID)
            {
                m_refMonitoringLoggerMgr.Write(strServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.FAILED_START_SERVER_ERROR);
                return(false);
            }

            if (PROCESS_STATE.RUNNING == refServerInfo.ProcessState || PROCESS_STATE.STARTING == refServerInfo.ProcessState)
            {
                m_refMonitoringLoggerMgr.Write(strServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.FAILED_START_SERVER_ALREADY_START);
                return(false);
            }

            int nProcessID;

            if (m_refProcessSystem.StartProcess(refServerInfo.ExePath, out nProcessID) == false)
            {
                FileLog.Instance.Write("실패! ServerController.StartServer(), 서버 프로세스를 시작하지 못했습니다. (ServerName={0}, ExePath={1})", strServerName, refServerInfo.ExePath);
                m_refMonitoringLoggerMgr.Write(strServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.FAILED_START_SERVER_PROCESS);
                return(false);
            }

            refServerInfo.SetProcessStarting(nProcessID);

            m_refMonitoringLoggerMgr.Write(strServerName, refServerInfo.WorldID, refServerInfo.ServerID, LogID.STARTING_SERVER);
            return(true);
        }
예제 #2
0
        public void Init(string strServerName, ServerInfoMgr refServerInfoMgr)
        {
            ServerInfo refServerInfo = refServerInfoMgr.Find(strServerName);

            if (null == refServerInfo)
            {
                return;
            }

            listboxDetailInfo.Items.Add("Name : " + refServerInfo.ServerName);
            listboxDetailInfo.Items.Add("Process State : " + refServerInfo.ProcessState.ToString());
            listboxDetailInfo.Items.Add("Exe Path : " + refServerInfo.ExePath);
            listboxDetailInfo.Items.Add("Process Name : " + refServerInfo.ProcessName);
            listboxDetailInfo.Items.Add("Process ID : " + refServerInfo.ProcessID.ToString());
            listboxDetailInfo.Items.Add("World ID : " + refServerInfo.WorldID.ToString());
            listboxDetailInfo.Items.Add("Server ID : " + refServerInfo.ServerID.ToString());
            listboxDetailInfo.Items.Add("Latest Start Time : " + refServerInfo.LatestStartTime.ToString("yyyy/MM/dd-HH:mm:ss"));
        }
예제 #3
0
        public bool SetServerRevivable(string strServerName, bool bCheckedRevive)
        {
            bool bCurRevivable = m_serverInfoMgr.IsServerRevivable(strServerName);

            if (bCheckedRevive == bCurRevivable)
            {
                return(true);
            }

            ServerInfo refServerInfo = m_serverInfoMgr.Find(strServerName);

            if (null == refServerInfo)
            {
                return(false);
            }

            refServerInfo.SetProcessRevivable(bCheckedRevive);

            m_updaterServerListView.UpdateServerListInfo(strServerName);
            return(true);
        }
예제 #4
0
        private void OutPutServerDescription(string strServerName)
        {
            if (strServerName.Length == 0)
            {
                return;
            }

            ServerInfo refServerInfo = m_refServerInfoMgr.Find(strServerName);

            if (null == refServerInfo)
            {
                return;
            }

            string strServerProcessName;

            strServerProcessName = System.IO.Path.GetFileNameWithoutExtension(refServerInfo.ExePath);

            textboxDesc.Text  = "Server Name = " + strServerName + "\r\n";
            textboxDesc.Text += "Execute File Path = " + refServerInfo.ExePath + "\r\n";
            textboxDesc.Text += "Process Name = " + strServerProcessName + "\r\n";
        }