private static LinuxProcessStatus ParseProcessStatus(string statusText)
        {
            var result = new LinuxProcessStatus {
                State = nixProcessState.Unknown
            };

            if (string.IsNullOrEmpty(statusText))
            {
                return(result);
            }
            var items = statusText.Split(new[] { ' ' }, StringSplitOptions.None);

            if (items.Length <= 0)
            {
                return(result);
            }
            int.TryParse(items[0], out result.Id);

            if (items.Length <= 1)
            {
                return(result);
            }
            result.Name = items[1].TrimStart('(').TrimEnd(')');

            if (items.Length <= 2 || items[2].Length <= 0)
            {
                return(result);
            }
            if (char.ToUpper(items[2][0]) == 'R')
            {
                result.State = nixProcessState.Running;
            }
            else if (char.ToUpper(items[2][0]) == 'S')
            {
                result.State = nixProcessState.InterruptableWait;
            }
            else if (char.ToUpper(items[2][0]) == 'D')
            {
                result.State = nixProcessState.UninterruptableDiskWait;
            }
            else if (char.ToUpper(items[2][0]) == 'Z')
            {
                result.State = nixProcessState.Zombie;
            }
            else if (char.ToUpper(items[2][0]) == 'T')
            {
                result.State = nixProcessState.Traced;
            }
            else if (char.ToUpper(items[2][0]) == 'W')
            {
                result.State = nixProcessState.Paging;
            }
            return(result);
        }
Пример #2
0
        private static LinuxProcessStatus ParseProcessStatus(string statusText)
        {
            var result = new LinuxProcessStatus {
                State = LinuxProcessState.Unknown
            };

            if (!string.IsNullOrEmpty(statusText))
            {
                var items = statusText.Split(new[] { ' ' }, StringSplitOptions.None);

                if (items.Length > 0)
                {
                    int.TryParse(items[0], out result.Id);

                    if (items.Length > 1)
                    {
                        result.Name = items[1].TrimStart('(').TrimEnd(')');

                        if (items.Length > 2 && items[2].Length > 0)
                        {
                            switch (char.ToUpper(items[2][0]))
                            {
                            case 'R':
                                result.State = LinuxProcessState.Running;
                                break;

                            case 'S':
                                result.State = LinuxProcessState.InterruptableWait;
                                break;

                            case 'D':
                                result.State = LinuxProcessState.UninterruptableDiskWait;
                                break;

                            case 'Z':
                                result.State = LinuxProcessState.Zombie;
                                break;

                            case 'T':
                                result.State = LinuxProcessState.Traced;
                                break;

                            case 'W':
                                result.State = LinuxProcessState.Paging;
                                break;
                            }
                        }
                    }
                }
            }

            return(result);
        }
Пример #3
0
        private static LinuxProcessStatus ParseProcessStatus(string statusText)
        {
            var result = new LinuxProcessStatus { State = nixProcessState.Unknown };

            if (string.IsNullOrEmpty(statusText)) return result;
            var items = statusText.Split(new[] { ' ' }, StringSplitOptions.None);

            if (items.Length <= 0) return result;
            int.TryParse(items[0], out result.Id);

            if (items.Length <= 1) return result;
            result.Name = items[1].TrimStart('(').TrimEnd(')');

            if (items.Length <= 2 || items[2].Length <= 0) return result;
            if (char.ToUpper(items[2][0]) == 'R')       result.State = nixProcessState.Running;
            else if (char.ToUpper(items[2][0]) == 'S')  result.State = nixProcessState.InterruptableWait;
            else if (char.ToUpper(items[2][0]) == 'D')  result.State = nixProcessState.UninterruptableDiskWait;
            else if (char.ToUpper(items[2][0]) == 'Z')  result.State = nixProcessState.Zombie;
            else if (char.ToUpper(items[2][0]) == 'T')  result.State = nixProcessState.Traced;
            else if (char.ToUpper(items[2][0]) == 'W')  result.State = nixProcessState.Paging;
            return result;
        }
Пример #4
0
        private static LinuxProcessStatus ParseProcessStatus(string statusText)
        {
            var result = new LinuxProcessStatus { State = LinuxProcessState.Unknown };

            if (!string.IsNullOrEmpty(statusText))
            {
                var items = statusText.Split(new[] { ' ' }, StringSplitOptions.None);

                if (items.Length > 0)
                {
                    int.TryParse(items[0], out result.Id);

                    if (items.Length > 1)
                    {
                        result.Name = items[1].TrimStart('(').TrimEnd(')');

                        if (items.Length > 2 && items[2].Length > 0)
                        {
                            switch (char.ToUpper(items[2][0]))
                            {
                                case 'R':
                                    result.State = LinuxProcessState.Running;
                                    break;
                                case 'S':
                                    result.State = LinuxProcessState.InterruptableWait;
                                    break;
                                case 'D':
                                    result.State = LinuxProcessState.UninterruptableDiskWait;
                                    break;
                                case 'Z':
                                    result.State = LinuxProcessState.Zombie;
                                    break;
                                case 'T':
                                    result.State = LinuxProcessState.Traced;
                                    break;
                                case 'W':
                                    result.State = LinuxProcessState.Paging;
                                    break;
                            }
                        }
                    }
                }
            }

            return result;
        }