age 于 2011-04-18 15:19:17发表:
引用: 7# age 判断不了,都是5. superherogood 发表于 2011-4-18 15:06
superherogood 于 2011-04-18 15:06:51发表:
7# age 判断不了,都是5.
gogo11 于 2011-04-17 21:50:54发表:
runlevel不准确的,在debian系列中2~5都是启动x-windows,判断gdm更不行,我用slim或者lxdm做管理,根本没有GDM这个东西。我敢觉应该判断X服务~~~~~~~~`
日韩宫禁一 于 2011-04-17 21:18:30发表:
看一下inittab里面的文件默认启动级别就可以了啊
age 于 2011-04-17 04:20:23发表:
引用: 前面多有冒犯,抱歉 yanyongkg 发表于 2011-4-17 02:36
yanyongkg 于 2011-04-17 02:36:44发表:
引用: 也许和你的系统有关吧, 我在archlinux下测试了几百次, 也没碰到$line=0的, 始终为1 age 发表于 2011-4-17 01:04
age 于 2011-04-17 01:04:17发表:
引用:line=$(ps aux |grep -i gnome |wc -l);echo $line上面这个$line总是1#!/bin/bash line=$(ps aux |grep -i gnome |wc -l) echo $line放到脚本中,$line有时为1有时为0 请指教,忘了说,我一直在文本模式下 yanyongkg 发表于 2011-4-16 19:13
yanyongkg 于 2011-04-16 19:13:27发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 19:14 编辑 [/i][code]line=$(ps aux |grep -i gnome |wc -l);echo $line[/code]上面这个$line总是1[code]#!/bin/bash line=$(ps aux |grep -i gnome |wc -l) echo $line[/code]放到脚本中,$line有时为1有时为0 请指教,忘了说,我一直在文本模式下
age 于 2011-04-16 18:58:45发表:
[i=s] 本帖最后由 age 于 2011-4-16 19:11 编辑 [/i]
引用:$line为0或1的时候是文本模式,$line>=2才有可能是gnome ,这是我们都承认的(部分gnome命令可以在文本模式下运行,我认同),>=2的时候你可以说界限是1也可以说界限是2。你看不出22楼我是一种无声的反问吗?真以为 ... yanyongkg 发表于 2011-4-16 18:46
yanyongkg 于 2011-04-16 18:46:25发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 18:52 编辑 [/i]网络延时了,重复了
yanyongkg 于 2011-04-16 18:46:22发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 20:17 编辑 [/i]$line为0或1的时候是文本模式,$line>=2才有可能是gnome ,这是我们都承认的(部分gnome命令可以在文本模式下运行,我认同),>=2的时候你可以说界限是1也可以说界限是2。
age 于 2011-04-16 18:24:25发表:
[i=s] 本帖最后由 age 于 2011-4-16 18:48 编辑 [/i]晕, 合着我上面写了那么多贴, 你竟然完全没弄明白状况, 好吧, 再仔细一一说明下 1. 关于界限1, 上个贴子我已经贴出来了, 再贴一次[code]line=`ps aux |grep -i gnome |wc -l` 变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现[/code]这里的原贴中明明白白的写了$line=1就是gnome状态, 这显然是不对的 我后面给出了命令去验证这一点, $line>=2才有可能是gnome 这还叫没给出证据, 你在后面的回贴里也承认这里写错了[code]对不起我, 我是说反了,返回1就是文本模式,否则就是gnome[/code]怎么现在反而纠住这里不放了? 2. 如果按ps aux |grep -i gnome|wc -l 来判断, $line=0或者$line=1都不能保证就是文本状态, 这个也在上贴里说明了, 部分gnome命令是可以在文本模式下运行的. 这点我也是验证过的, 在文本模式下运行[code]gnomevfs-monitor /media/d[/code]后, 再通过ps aux |grep -i gnome|wc -l 检测, 结果就是2. 不信你可以试试 但我后面提的gdm判断也有可能出错, 因为可能有人通过kdm等引导. 更精确的方法应该是去检测几个关键进程是否存在. 可以参考下这篇文章 http://library.gnome.org/admin/system-admin-guide/stable/sessions-1.html.en 对gnome-panel和gnome-session的检测要优于"gnome"关键字
yanyongkg 于 2011-04-16 18:17:09发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 18:19 编辑 [/i]您觉得我列出来的脚本是以2为界限的,但它是以1为界限的。当然把脚本改成以2为界限也可以实现相同的作用,因为如果在是gnome桌面环境下,$line不可能出现为2的情况,它要大于2一大截,比如你的环境下匹配出的$line=20。 ps aux |grep -i gnome|wc -l 从进程中匹配出gnome的行,通过管道传给wc计算出行数,赋值给$line。 在文本模式下的只有1行,不就是grep -i gnome这一行吗。把这个放到脚本中,有时会出现$line=0的情况(此种情况我也想不明白,可以在line=$(ps aux |grep -i gnome |wc -l)的下一行,加一个echo $line可以看到),所我把$line为0这种情况也加进去了。以据这个判断您有什么高见? 您说我以1为界限是错误的,请给出证据,没经过验证请不要随便否定他人的答案。
age 于 2011-04-16 17:53:25发表:
引用: 不同的系统的runleve都不同 pl_014 发表于 2011-4-15 17:53
age 于 2011-04-16 17:17:53发表:
[i=s] 本帖最后由 age 于 2011-4-16 17:51 编辑 [/i]你这和我列出来的就有什么区别, 不还是判断是否大于2吗? 你再看看我回的那个贴子[code]line=`ps aux |grep -i gnome |wc -l` 变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现[/code]这里按1为界限判断本来就是错的, 我反驳的哪里不对 至于我后面不建议用gnome判断, 是因为部分gnome命令是可以文本模式下执行的, 比如gnomevfs-monitor, 这会给判断结果带来混乱
yanyongkg 于 2011-04-16 16:05:29发表:
18# age 自己没验证过就下结论方法行不通,还振振有词,不知道是谁在误导人家。 脚本在下面自己看行不行得通!
age 于 2011-04-16 15:43:58发表:
[i=s] 本帖最后由 age 于 2011-4-16 15:47 编辑 [/i]
引用: 看你说得头头是道,人家一个回复你要挑半天毛病,有本事你把判断的脚本写出来,人家楼主是要脚本自己去判断不是要你在这打命令来判断,如果这样用眼睛看不就知道是文本模式还是gnome模式了如必在这敲命令? yanyongkg 发表于 2011-4-16 12:39
yanyongkg 于 2011-04-16 12:39:23发表:
引用: 不止吧, 我随便试了下, 就有20 最关键的是在这些进程中 grep -i gnome 进程是肯定有的, 因此无论如何, $line总是大于等于1的 如[allblue@MyLady i686]$ ps aux |grep -i gnome |wc -l 20 [allblue@MyLady i686 ... age 发表于 2011-4-15 12:40
pl_014 于 2011-04-15 17:53:30发表:
引用:查看runlevel吧 1 2 3 文本 5 图形 age 发表于 2011-4-14 23:25
yanyongkg 于 2011-04-15 12:53:46发表:
对不起我, 我是说反了,返回1就是文本模式,否则就是gnome
age 于 2011-04-15 12:40:55发表:
[i=s] 本帖最后由 age 于 2011-4-15 12:45 编辑 [/i]
引用:line=`ps aux |grep -i gnome |wc -l` 变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现 yanyongkg 发表于 2011-4-15 11:42
yanyongkg 于 2011-04-15 11:42:22发表:
line=`ps aux |grep -i gnome |wc -l` 变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现
troonv 于 2011-04-15 07:26:33发表:
这还用判断,呵呵,都是高技术学习人纳
age 于 2011-04-15 03:21:31发表:
引用: 这个不一定的把?有的启动的时候在3下,然后手动startx了 shenhao0129 发表于 2011-4-15 00:34
superherogood 于 2011-04-14 23:27:24发表:
那如何判断呢
age 于 2011-04-14 23:25:43发表:
查看runlevel吧 1 2 3 文本 5 图形
superherogood 于 2011-04-14 23:20:49发表:
算是吧,我就想知道如何用代码得到当前的模式
superherogood 于 2011-04-14 23:15:49发表:
superherogood 于 2011-04-14 23:14:15发表:
superherogood 于 2011-04-14 23:14:08发表:
chengshiding 于 2011-04-14 22:46:15发表:
判断 gdm 服务开启了没
age 于 2011-04-18 15:19:17发表:
我后面已经修改了, 检测gnome关键进程
superherogood 于 2011-04-18 15:06:51发表:
7# age
判断不了,都是5.
gogo11 于 2011-04-17 21:50:54发表:
runlevel不准确的,在debian系列中2~5都是启动x-windows,判断gdm更不行,我用slim或者lxdm做管理,根本没有GDM这个东西。我敢觉应该判断X服务~~~~~~~~`
日韩宫禁一 于 2011-04-17 21:18:30发表:
看一下inittab里面的文件默认启动级别就可以了啊
age 于 2011-04-17 04:20:23发表:
无关的争论到此为止, 如果是技术性的可以继续:0w5ty(1
yanyongkg 于 2011-04-17 02:36:44发表:
前面多有冒犯,抱歉
age 于 2011-04-17 01:04:17发表:
也许和你的系统有关吧, 我在archlinux下测试了几百次, 也没碰到$line=0的, 始终为1
yanyongkg 于 2011-04-16 19:13:27发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 19:14 编辑 [/i]
[code]line=$(ps aux |grep -i gnome |wc -l);echo $line[/code]上面这个$line总是1[code]#!/bin/bash
line=$(ps aux |grep -i gnome |wc -l)
echo $line[/code]放到脚本中,$line有时为1有时为0
请指教,忘了说,我一直在文本模式下
age 于 2011-04-16 18:58:45发表:
[i=s] 本帖最后由 age 于 2011-4-16 19:11 编辑 [/i]
没看到你的反问在哪里, 只看到很醒目的红色高亮
我也没觉得我那篇贴命令的贴子语气有什么冒犯你的地方
只是实事求是的贴了下验证结果. 看到17L的言论时, 真是有种莫名其妙的感觉
反倒是你的贴子一直给人一种咄咄逼人的感觉
其次既然你也承认"部分gnome命令可以在文本模式下运行"
那么你的脚本就绝对有bug的, 在上面的回贴里我也有说明了[code]$line为0或1的时候是文本模式,$line>=2才有可能是gnome [/code]这句话我是不认同的
注: 只针对gnome2, gnome3没用过, 不作评论
yanyongkg 于 2011-04-16 18:46:25发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 18:52 编辑 [/i]
网络延时了,重复了
yanyongkg 于 2011-04-16 18:46:22发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 20:17 编辑 [/i]
$line为0或1的时候是文本模式,$line>=2才有可能是gnome ,这是我们都承认的(部分gnome命令可以在文本模式下运行,我认同),>=2的时候你可以说界限是1也可以说界限是2。
age 于 2011-04-16 18:24:25发表:
[i=s] 本帖最后由 age 于 2011-4-16 18:48 编辑 [/i]
晕, 合着我上面写了那么多贴,
你竟然完全没弄明白状况,
好吧, 再仔细一一说明下
1. 关于界限1, 上个贴子我已经贴出来了, 再贴一次[code]line=`ps aux |grep -i gnome |wc -l`
变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现[/code]这里的原贴中明明白白的写了$line=1就是gnome状态, 这显然是不对的
我后面给出了命令去验证这一点, $line>=2才有可能是gnome
这还叫没给出证据, 你在后面的回贴里也承认这里写错了[code]对不起我, 我是说反了,返回1就是文本模式,否则就是gnome[/code]怎么现在反而纠住这里不放了?
2. 如果按ps aux |grep -i gnome|wc -l 来判断, $line=0或者$line=1都不能保证就是文本状态, 这个也在上贴里说明了, 部分gnome命令是可以在文本模式下运行的.
这点我也是验证过的, 在文本模式下运行[code]gnomevfs-monitor /media/d[/code]后, 再通过ps aux |grep -i gnome|wc -l 检测, 结果就是2. 不信你可以试试
但我后面提的gdm判断也有可能出错, 因为可能有人通过kdm等引导. 更精确的方法应该是去检测几个关键进程是否存在.
可以参考下这篇文章
http://library.gnome.org/admin/system-admin-guide/stable/sessions-1.html.en
对gnome-panel和gnome-session的检测要优于"gnome"关键字
yanyongkg 于 2011-04-16 18:17:09发表:
[i=s] 本帖最后由 yanyongkg 于 2011-4-16 18:19 编辑 [/i]
您觉得我列出来的脚本是以2为界限的,但它是以1为界限的。当然把脚本改成以2为界限也可以实现相同的作用,因为如果在是gnome桌面环境下,$line不可能出现为2的情况,它要大于2一大截,比如你的环境下匹配出的$line=20。
ps aux |grep -i gnome|wc -l 从进程中匹配出gnome的行,通过管道传给wc计算出行数,赋值给$line。
在文本模式下的只有1行,不就是grep -i gnome这一行吗。把这个放到脚本中,有时会出现$line=0的情况(此种情况我也想不明白,可以在line=$(ps aux |grep -i gnome |wc -l)的下一行,加一个echo $line可以看到),所我把$line为0这种情况也加进去了。以据这个判断您有什么高见?
您说我以1为界限是错误的,请给出证据,没经过验证请不要随便否定他人的答案。
age 于 2011-04-16 17:53:25发表:
仔细尝试了下, runlevel判断的确不准
startx虽然切换图形模式, 但runlevel不变
age 于 2011-04-16 17:17:53发表:
[i=s] 本帖最后由 age 于 2011-4-16 17:51 编辑 [/i]
你这和我列出来的就有什么区别, 不还是判断是否大于2吗?
你再看看我回的那个贴子[code]line=`ps aux |grep -i gnome |wc -l`
变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现[/code]这里按1为界限判断本来就是错的, 我反驳的哪里不对
至于我后面不建议用gnome判断, 是因为部分gnome命令是可以文本模式下执行的, 比如gnomevfs-monitor, 这会给判断结果带来混乱
yanyongkg 于 2011-04-16 16:05:29发表:
18# age
自己没验证过就下结论方法行不通,还振振有词,不知道是谁在误导人家。
脚本在下面自己看行不行得通!
age 于 2011-04-16 15:43:58发表:
[i=s] 本帖最后由 age 于 2011-4-16 15:47 编辑 [/i]
只能说你莫名其妙,
我列出命令只是说明它的方法不可行, 这有什么错误?
既然是讨论, 有错误就应该提出来, 否则就是误导别人
怎么在你眼中, 这反而成了吹毛求疵,
而且上面人也承认写反了, 怎么你倒弄出这么多意见.
至于脚本, 就更不想说了
只想问一句, 你会编脚本不?
得到了$line值, 后面缺的就是一个if;判断.
这和完全得到结果就多大区别?
真是不可理喻
yanyongkg 于 2011-04-16 12:39:23发表:
看你说得头头是道,人家一个回复你要挑半天毛病,有本事你把判断的脚本写出来,人家楼主是要脚本自己去判断不是要你在这打命令来判断,如果这样用眼睛看不就知道是文本模式还是gnome模式了如必在这敲命令?
pl_014 于 2011-04-15 17:53:30发表:
不同的系统的runleve都不同
yanyongkg 于 2011-04-15 12:53:46发表:
对不起我, 我是说反了,返回1就是文本模式,否则就是gnome
age 于 2011-04-15 12:40:55发表:
[i=s] 本帖最后由 age 于 2011-4-15 12:45 编辑 [/i]
不止吧, 我随便试了下, 就有20
最关键的是在这些进程中 grep -i gnome 进程是肯定有的, 因此无论如何, $line总是大于等于1的
如[code][allblue@MyLady i686]$ ps aux |grep -i gnome |wc -l
20
[allblue@MyLady i686]$ ps aux |grep -i gnome
root 1647 0.0 0.0 19616 1444 ? Sl Apr12 0:00 /usr/lib/gdm/gdm-simple-slave --display-id /org/gnome/DisplayManager/Display1
gdm 1764 0.0 0.1 30124 2492 ? Sl Apr12 0:00 /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
allblue 1892 0.0 0.0 31532 1272 ? Sl Apr12 0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
allblue 1911 0.0 0.2 113076 5488 ? Ssl Apr12 0:00 gnome-session
allblue 1937 0.0 0.3 36056 7056 ? Ssl Apr12 0:39 /usr/bin/gnome-settings-daemon
allblue 1951 0.0 0.7 356096 14752 ? Sl Apr12 0:24 gnome-panel
allblue 1986 0.1 0.5 127964 11724 ? Sl Apr12 6:00 /usr/lib/gnome-panel/wnck-applet
allblue 1988 0.0 0.3 164032 6048 ? Sl Apr12 0:00 /usr/lib/gnome-applets/trashapplet
allblue 1993 0.0 0.2 112804 4428 ? Sl Apr12 0:00 /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
allblue 1997 0.0 0.3 104608 6328 ? Sl Apr12 0:02 gnome-power-manager
allblue 1999 0.0 0.1 21416 3304 ? S Apr12 0:00 /usr/lib/gnome-disk-utility/gdu-notification-daemon
allblue 2005 0.0 0.0 30056 1788 ? Ss Apr12 0:00 gnome-screensaver
allblue 2035 0.0 0.2 96616 5020 ? Sl Apr12 2:19 /usr/lib/gnome-applets/multiload-applet-2
allblue 2037 0.0 0.4 197336 8784 ? Sl Apr12 0:00 /usr/lib/gnome-applets/mixer_applet2
allblue 2039 0.0 0.6 334676 13068 ? Sl Apr12 0:05 /usr/lib/gnome-panel/clock-applet
allblue 2041 0.0 0.2 95792 4332 ? Sl Apr12 0:02 /usr/lib/gnome-panel/notification-area-applet
allblue 2174 11.2 0.7 286324 15600 ? Rl Apr12 568:01 gnome-system-monitor
allblue 2177 0.0 0.5 188920 10404 ? Sl Apr12 0:58 gnome-terminal
allblue 2181 0.0 0.0 1920 452 ? S Apr12 0:00 gnome-pty-helper
allblue 30013 0.0 0.0 6020 836 pts/0 S+ 12:40 0:00 grep -i gnome
[/code]注意上面的最后一行, 最好还是检测/usr/sbin/gdm吧, $line>=2, 就是启动了gnome, 否则是文本模式
如下[code][allblue@MyLady i686]$ ps aux |grep -i /usr/sbin/gdm | wc -l
2
[allblue@MyLady i686]$ ps aux |grep -i /usr/sbin/gdm
root 1644 0.0 0.0 16340 1364 ? Ssl Apr12 0:00 /usr/sbin/gdm-binary -nodaemon
allblue 30054 0.0 0.0 6020 840 pts/0 S+ 12:44 0:00 grep -i /usr/sbin/gdm[/code]
yanyongkg 于 2011-04-15 11:42:22发表:
line=`ps aux |grep -i gnome |wc -l`
变量$line为1表示当前处于gnome模式,否则就是文本模式,具体请用if函数去实现
troonv 于 2011-04-15 07:26:33发表:
这还用判断,呵呵,都是高技术学习人纳
age 于 2011-04-15 03:21:31发表:
runlevel不变吗? 我一直以为startx等价于init 5的
此时已经相当于切换到runlevel 5了
需要开启/关闭很多服务, 和runlevel 3有冲突吧
superherogood 于 2011-04-14 23:27:24发表:
那如何判断呢
age 于 2011-04-14 23:25:43发表:
查看runlevel吧
1 2 3 文本
5 图形
superherogood 于 2011-04-14 23:20:49发表:
算是吧,我就想知道如何用代码得到当前的模式
superherogood 于 2011-04-14 23:15:49发表:
算是吧,我就想知道如何用代码得到当前的模式
superherogood 于 2011-04-14 23:14:15发表:
算是吧,我就想知道如何用代码得到当前的模式
superherogood 于 2011-04-14 23:14:08发表:
算是吧,我就想知道如何用代码得到当前的模式
chengshiding 于 2011-04-14 22:46:15发表:
判断 gdm 服务开启了没