Q:Win10 Build9841 64位系统。没有建立虚拟机的菜单,怎么办?
A:右上角那个“连接到服务器”,你要先把本机添加成hyper-v服务器才能创建虚拟机。



Q:选连接到本地计算机后,出现Hyper-V开启失败无法连服务器/无效类,怎么办?

微软也有一个本身自带的虚拟机叫做Hyper-V,但是并不好用。如题,打开Hyper-V,提示:尝试连接“XXX”时出错。请检查……此服务器。计算机"XXX"上的操作失败:无效类。参考:

http://jingyan.baidu.com/article/8275fc866ecb1f46a03cf6a1.html


如果还是不行?有可能是这样的:
那很可能是因为你的系统不是64位的,注意32位系统是无法在本地运行Hyper-V的!
此时建议改用VMware Workstation。
有用的插件:
SublimeCodeIntel 让sublime跳转到变量定义的地方:
http://www.xuebuyuan.com/1122417.html
需要在用户目录添加配置文件。linux就是创建 ~/.codeintel/config 文件,具体readme,win也是用户目录下
sublimecodeintel 安装后需要配置,文件:插件目录/.codeintel/config 中 增加

"PHP": {
        "php": 'D:\SaeServer\php\php.exe',
        "phpExtraPaths": ['D:\SaeServer\php\stdlib'],
        "phpConfigFile": 'D:\SaeServer\apache\php.ini'
    },


ctags。 这个插件能跨文件跳转,跳转到指定函数声明的地方。 使用package control 搜索ctags 进行安装(安装ctags插件就可以了, 还有一个 CTags for PHP 插件没什么用)。注意安装好插件后要需要安装ctags命令。window 下载 ctags.exe  http://vdisk.weibo.com/s/7QZd7 。 将ctags.exe文件放在一个环境变量能访问到的地方。打开cmd, 输入ctags,如果有这个命令,证明成功了。 ubuntu下安装运行命令:sudo apt-get install exuberant-ctags 。
    然后在sublime项目文件夹右键, 会出现Ctag:Rebuild Tags 的菜单。点击它,然后会生成.tags的文件。也可:
    ctags -R -f .tags生成  .tags文件,然后在sublime下就可以用ctrl+t ctrl+t来跳转,用ctrl+t ctrl+b来返回到原来位置。 From:http://www.cnblogs.com/cchun/p/3794018.html

ctags

生成.ctags ctrl + t + r  同时t r。

跳转到声明 ctrl + t + t ,ctrl+> ,ctrl+shift+left_click (按两次t,> 这个在笔记本键盘上得按下shift上档键的点上面才有> ,ctrl+shift+.)
返回 ctrl + t + b ,ctrl+< ,ctrl+shift+right_click         (t b两次,或直接按ctrl+shift+,),   ,这个就是, 上面的<符号。


sublime配置全攻略:
http://blog.csdn.net/w6611415/article/details/7725566/

以下来处:http://www.cnblogs.com/lchg/p/5304168.html
对你有助请点赞,请顶,不好请踩------送人玫瑰,手留余香!
目录放错地了是关键,目录在:D:\Program Files\sublime\Data\Packages\sublime-phpcs-master ,win7好像真没有这个目录。
C:\Users\admin\AppData\Roaming\Sublime Text 3\Packages 放这儿才是:
"D:\Program Files\SublimeText3\Data\Packages\User\phpcs.sublime-settings"
但是window10的sublime路径的确在:
阅读全文
背景: 深入理解PHP原理之变量分离/引用(Variables Separation)   之自己+1,这个refcount是否+1的问题。
Q:
有时候会在原有数值的基础上改变吧 比如$var++
A:两种情况,那个对象就不测试了:
情况1,字符:


---------- 调试PHP ----------
string(5) "jackX" refcount(2)
string(5) "jackY" refcount(2)

输出完成 (耗时 0 秒) - 正常终止


情况2,整数:


---------- 调试PHP ----------
long(1) refcount(2)
long(2) refcount(2)

输出完成 (耗时 0 秒) - 正常终止

说明,$var++; 并没有改变自己的refcount值。而像:$var_dup = $var;就会+1了哟:



---------- 调试PHP ----------
string(5) "jackX" refcount(2)
string(5) "jackY" refcount(3)  <---看,这儿+1,等于3了,$var_dup = $var;会加1,得证。

输出完成 (耗时 0 秒) - 正常终止
实践来源:http://www.laruence.com/2008/09/19/520.html


疑问:


---------- 调试PHP ----------
string(8) "laruence" refcount(3)
string(8) "laruence" refcount(3)
long(1) refcount(2)
string(8) "laruence" refcount(2)

输出完成 (耗时 0 秒) - 正常终止

可能是:
作为函数的参数穿进去的时候,函数的实参使用了,所以+1,函数电用完,实参也回收了,所以变回2,应该是这样,实践如下:

---------- 调试PHP ----------
string(9) "jackxiang" refcount(2)
string(9) "jackxiang" refcount(2)
string(9) "jackxiang" refcount(2)

输出完成 (耗时 0 秒) - 正常终止

运行debug_zval_dump后不是又变回去了?按这样说,那前面的结论都TM错了,$var ++,其refcount也是加了1的。这就是结论。要看是这么玩的,得看PHP这块的源代码。

http://my.oschina.net/u/2340880/blog/508688
Crack:
http://download.csdn.net/download/xieyupeng520/9342987

http://www.sd173.com/html/3774.html
背景:阿里私有云呐,出现Agent异常,查各种配置均没有问题,后把EDAS的agent服务器均重启了又好了(重启6台中的一台还是有问题),东软哥们问阿里说是给他来了句,叫什么地址漂移,不知道什么鬼高科技。查一下了解了解。

   采用地址漂移技术,利用虚拟IP地址来绑定主服务器,可有效解决不能利用组播的情况下,多台服务器集群之间的信息交互问题。此方法具有一定的代表性,在很多行业可以采用。  双机集群方式广泛应用于各级航空飞行管制中心,两台中心服务器通过网络构成一套高可靠性双机热备份系统,同步工作、互为备份,当主机发生故障时,自动切换到备机工作,系统不间断运行。而地址漂移技术是当其中一台主机有故障时,另一主机接管故障主机的网络IP地址,使网络仍能正常运行。
三是采用地址漂移技术,给管制中心分配一个航空管制中心虚拟IP 地址,航空管制中心之间传递情报采用此IP地址,然后由各航空管制中心的主服务器与此IP地址绑定,负责接收和发送情报。同时在主服务器启动一个三通进 程,所谓三通进程是指此进程负责接收信息,然后将收到的信息分别转发到集群内两台服务器,类似于水龙头的三通,因此称之为三通进程。主服务器收到一份情报 后,送往局域网内主服务器和备服务器的接收进程。当主机切换为备机时,此服务器卸载此虚拟IP地址,切换为主机的服务器加载虚拟IP地址,并启用三通进程 负责接收和分发情报。虚拟IP地址在主备服务器之间漂移,也称之为地址漂移技术,目前很多集群软件也采用此技术来解决集群内多台计算机只有惟一IP地址的 问题。
文中有说ARP+Socket实现的。详情如下:

阅读全文
Redis的慢日志是一个系统记录了超出规定的执行时间查询。执行时间不包括I/O操作,比如与客户会话,发送回复等等,只是实际执行的命令(这就是线程被阻塞而无法执行命令的唯一阶段所需的时间为在此期间其他请求)。可以用两个参数来配置的慢日志:slowlog-log-slower-than告诉Redis是什么的执行时间,以微秒为单位,以超过为获得记录的命令。需要注意的是负数禁用慢日志,而零值强制每个命令的记录。slowlog-max-len是慢日志的长度。最小值是零。当一个新的命令被记录和慢日志已处于其最大长度时,最早的一个是从记录的命令队列中移出以腾出空间。该配置可以通过编辑redis.conf完成或当服务器使用CONFIG GET和Config中设置的命令运行。

一、Redis默认记录超过10000us的命令:
10.64.*.54:6379> config get slowlog-log-slower-than
1) "slowlog-log-slower-than"
2) "10000"


二、默认保留128条慢查询日志:
10.64.*.54:6379> config get slowlog-max-len
1) "slowlog-max-len"
2) "128"


三、慢查询日志查询,2条:
[root@rh08 ~]# redis-cli -h 10.64.*.54
10.64.6.54:6379>  slowlog get 2
1) 1) (integer) 2
   2) (integer) 1470219973
   3) (integer) 36910
   4) 1) "info"
2) 1) (integer) 1
   2) (integer) 1469739564
   3) (integer) 14997
   4) 1) "save"
知识只求寻常实用。在众人面前,即使你具有非凡的才智也要装作不知。人的思维方式各异,就像人的胃口一样。不要作古人的深沉,但要和今人同味。要注意人数的多寡,这是最要紧的。要想出人头地,先得在品味上随大流。即使过去更令人倾心,明智的人也会努力适应现时而调整自己,不论是在思想的包装还是在身体的包装方面。这一法则可放之四海,只有善字除外,因为人需要时时行善。许多东西看似陈旧古板,比如讲真话,守诺言。善良的人看起来属于美好的过去,但却常受人爱戴。这种人虽有,却非常稀少,人们多半不仿效他们。如果一个时代里恶意盛行,善行难觅,那该是何等可悲的时代!明智之人只是尽力自保,纵使不能尽如心愿。希望他们乐意接收命运所赐而不是向命运讨要!
一个很难的是“知行合一”。学知识很容易,但是把知道的东西做出来,并且做出来的东西让别人喜欢,是多么地难。所以我经常不好意思地说,不是我很狂,我看到学者专家讲评的时候,说说我比他还会说,但做起来很难。知行合一是企业家非常难做到的东西。

学知识很容易,但是把知道的东西做出来,并且做出来的东西让别人喜欢,是多么地难。
说我比他还会说,但做起来很难。知行合一是咱们面前非常难做到的一个东西,加油吧。
像discuz论坛啥的, 要是楼数多,分页发现有这个问题,导致mysql的cpu负载较高,分页需要优化,如limit 222222,20,从20万以上取这样的。
再说是对mysql的INNODB引擎进行分区,以提高mysql的性能:

资料:
【分页查询时如何优化MySQL的性能?必藏】
http://toutiao.com/group/6303291874997141762/?iid=4621176401&app=news_article&tt_from=android_share&utm_medium=toutiao_android&utm_campaign=client_share

MySQL架构优化实战系列3:定时计划任务与表分区:
http://sc.qq.com/fx/u?r=BHE7tkA

MySQL架构优化实战系列2:主从复制同步与查询性能调优:
http://blog.csdn.net/huaweitman/article/details/51822082

MySQL架构优化实战系列1:数据类型与索引调优全解析:
http://udn.yyuap.com/article-11729.html
背景:公司发的本本发现关闭Alt+F4,需要加上Fn键盘,那个音量键盘,默认就是F3即可,这产品设计得是为用户,不是为开发的呀,得修改。
thinkpad X250笔记本ALT+F4组合键不能用 只能FN+ALT+F4:
这款笔记本要使用 F1 - F12 功能,需要同时按 Fn 键和所需的功能键;
这是默认设置。要更改默认设置,方法如下。
笔记本开机之后在品牌LOGO画面按F2,进入到BIOS设置界面。
从 BIOS Setup Utility 菜单中选择 Config。
从Keyboard/Mouse 子菜单中找到Fn Key Lock:禁用 Fn 键锁定即可。


实践发现有一项是F1-F12什么的给Enable,好像就好了。


实际怎么弄的呢?步骤如下:
1.开机进入时,按F12,不是F2,也不是del,进入到一个界面。这个界面好像又是一个tab的,如下:
Boot Menu  | App Menu --》 Setup
2.Config->Keyboard/Mouse->F1-F12 as Primary Function [enable], 这下Al+F4,就能使用了,不用按FN这个键了。
背景:经常看到为了省流量出现js代码或css代码经过了压缩,怎么不用工具,直接在浏览器里看呢?如下 巧用Chrome格式化压缩后的js文件。
实践如下:F12->Source->左侧找到找看的js->选中js->选中后右侧有一个line1、column1-> 在它的左边有一个花括号->于是就会变成格式化正常可看代码。
———————————————————————————————————————————————————————————————————

按下快捷键F12,或者Ctrl+Shift+I
我们点击Sources中的一个百度Javascript代码文件。
可以看出,这些代码是经过压缩的。如果直接阅读这一块代码,很快就会感到理解困难了。
我们点击下方的大括号{}图标,即可使用Pretty Print功能了。

来自:http://blog.csdn.net/yenange/article/details/7162405
背景:如果一个文件目录很大且需要定时同步,怎么办,linux下有一个rsync,同步到的可能是本地,更多是同步到把nas给mount上来的一个网络超大磁盘,这就很有用了。

rsync -avh #备注:只是增量同步,远端有不一样的文件,它不会自动删除。
rsync -avh --delete gliethttp/ /media/udisk/gliethttp
其中gliethttp/为src这里的结尾/很重要,这表示同步的是gliethttp/目录中的内容,而不是gliethttp目录本身.
/media/udisk/gliethttp为dst
表示将src中的内容与dst进行严格同步,如果dst不存在,那么创建之.
-r 表示递归目录
-t 表示保留时间
-l 表示保留符号链接

我们也可以使用ssh辅助rsync远程同步文件夹
luther@gliethttp:~$ rsync -avh --delete luther@127.0.0.1:/media/udisk/gliethttp/ gliethttp.local
默认使用ssh远程登录luther用户,然后使用ssh加密通道进行数据传输,同步/media/udisk/gliethttp/文件夹中的内容到本地的gliethttp.local目录下

网上有通过配置/etc/rsyncd.conf来设置访问权限,个人感觉很不安全,远远不如使用成熟的ssh进行数据加密,对于用户认证,可以将生成的.ssh对应的key发布出去,这样就不用每次输入密码了[luther.gliethttp]
《windows登陆远程Linux主机的一种途径putty-详细安装使用过程》
下面看看如何创建key
1. luther@gliethttp:~$ ssh-keygen -t rsa
2. 将~/.ssh/id_rsa.pub改名为/root/.ssh/authorized_keys
3. 将私钥~/.ssh/id_rsa拷贝到远程客户端的~/.ssh/目录下
当然可以安装rsync的GUI版本grsync
luther@gliethttp:~$ sudo apt-get install grsync

来自:http://blog.chinaunix.net/uid-20564848-id-74200.html
DokuWiki 升级方法
diff -ruN /data/htdocs/wiki.jackxiang.com/  dokuwiki/ > wiki.diff
cp -Rf /data/htdocs/wiki.jackxiang.com /data/backup/wiki.jackxiang.com.backup.2016.7.28
cd /data/htdocs/wiki.jackxiang.com
patch -p1 < /tmp/doukuwiki/wiki.diff --dry-run
patch -p1 < /tmp/doukuwiki/wiki.diff
yes|cp -Rf /data/backup/wiki.jackxiang.com.backup.2016.7.28/conf/* ./conf/.
yes|cp -Rf /data/backup/wiki.jackxiang.com.backup.2016.7.28/data/* ./data/.
chmod -R 755 /data/htdocs/wiki.jackxiang.com/data/
---------------------------------------------------------------------------------------------------------
说明:Dokuwiki Install Path:~/public_html/wiki
1、先确认目前所使用的版本号:
$cd ~/public_html/wiki
$cat VERSION
2009-02-14b

2、官网下载最新版本版本进行差异对比:
点击查看: http://www.splitbrain.org/projects/dokuwiki

$mkdir src
$cd src
$wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2009-02-14b.tgz
$wget http://www.splitbrain.org/_media/projects/dokuwiki/dokuwiki-2009-12-25c.tgz
$tar zxvf dokuwiki-2009-02-14b.tgz
$tar zxvf dokuwiki-2009-12-25c.tgz
$diff -Nauf dokuwiki-2009-02-14 dokuwiki-2009-12-25 > wiki.diff

3、二次确保安全,先做好原数据的备份工作:
$cd ~/public_html
$tar -zcvf src/wiki.tar.gz wiki/

4、最后靠谱过渡升级:
$cd ~/pubilic_html/wiki
$patch -p1 < ~/public_html/src/wiki.diff --dry-run  //测试升级
$patch -p1 < ~/public_html/src/wiki.diff    //正式升级

5、确认无误后即可清除废墟:
$rm -rf ~/public_html/src

参考资料:
官方指南: http://www.dokuwiki.org/zh:install:upgrade

本文来自:http://www.pythonclub.org/dokuwiki/upgrade
背景:在拿代码量算KPI...跟程序员来这一套。--西乔漫画。IT部门谈到:马上部署代码覆盖测试,PHP这块有查了一下还真有类似的工具。
Web端PHP代码函数覆盖率测试解决方案:
主要是结合xdebug和Spike PHPCoverage这两个工具进行统计:
原创网址:http://blog.csdn.net/httpnet/article/details/1707377
辅助参考:
http://www.cnblogs.com/xuning/archive/2015/11/09/4950110.html
http://blog.jobbole.com/97236/
我是win10:
win8上安装tortoisegit1.8.12 64位时无法安装,报2503错误。查资料,经测试后可以安装。

这是Win8系统的权限问题,可以如下解决:

1.运行CMD(管理员权限):
  在桌面直接使用 WIN+X 组合键 在弹出菜单目录中选择 运行命令提示符(管理员) ;
  也可以在桌面直接使用 WIN+X+A 组合键操作;
2.输入以下命令: msiexec /package "你安装程序包的路径"(例如:msiexec /package "d:\soft\TortoiseGit-1.8.12.0-64bit.msi" )


msiexec /package "E:\download\TortoiseGit-2.2.0.0-32bit.msi“


From:http://www.bubuko.com/infodetail-1022395.html
背景:删除文件时吧 /root/ 里面的文件删除了.过程如下:
[root@localhost x86_64]# ll
total 534136
-rwxr-xr-x 1 www  www    6227876 May  4 13:45 amoeba-2.1.0-160504134426.el6.x86_64.rpm
-rwxr-xr-x 1 www  www     149892 Apr 26 18:11 apcu-php56-4.0.11-160426181109.el6.x86_64.rpm
-rwxr-xr-x 1 www  www     114160 May  5 11:12 apcu-php70-5.1.3-160505111247.el6.x86_64.rpm
-rwxr-xr-x 1 www  www   25338712 May 27 15:40 berkeleydb-6.2.23-160527153833.el6.x86_64.rpm
-rwxr-xr-x 1 www  www   27203008 Jun 23 14:57 elasticsearch-2.3.3-160623145745.el6.noarch.rpm
drwx------ 3 root root      4096 Jul 15 15:20 $HOME

rm -Rf '$HOME'

[root@localhost x86_64]# rm -Rf $HOME
[root@localhost x86_64]# echo $HOME
/root
[root@localhost /]# ls /root
ls: cannot access /root: No such file or directory

cd /data/www/yum/centos/7/x86_64
rm -Rf usr
rm -Rf lib
rm -Rf lib64
rm -Rf boot
rm -Rf data
rm -Rf dev
rm -Rf etc
rm -Rf home
rm -Rf '$HOME'
rm -Rf  lost+found
rm -Rf  media
rm -Rf  mnt
rm -Rf  opt
rm -Rf  proc
rm -Rf  repodata
rm -Rf  root
rm -Rf  root_901
rm -Rf  run
rm -Rf  sbin
rm -Rf  srv
rm -Rf  sys
rm -Rf  tmp
rm -Rf  usr
rm -Rf  zabbix
rm -rf bin
rm -Rf selinux software var
rm -Rf lamp
rm -Rf scp.sh screenquit.sh temp.retry web.retry mysql.retry mountIrdcBackUp.sh irdcops.retry install.sh install.log.syslog install.log id_rsa debug.retry crontab_ntpdate  anaconda-ks.cfg monitor.sh
rm -Rf  a getip
============================================================
解决办法:
.mkdir /root

cp -a /etc/skel/.[!.]* /root



主要是吧 /etc/skel/里面的文件拷贝回去就行了~~~哈..


cp -r /etc/skel/.bash
.bash_logout   .bash_profile  .bashrc  
法一:
cp -a /etc/skel/.[!.]* /root
chown -R root /root
chmod -R 700 /root

法二:从别的linux上拷贝一个root过来,后面删除时注意一下:
带你飞(39345****)  11:37:21
@回忆未来-向东-Jàck rm '$HOME'
加个引号就行了

参考:http://blog.csdn.net/wlqf366/article/details/50081389
linux提供了一个daemon函数,使得进程可以脱离控制台运行,实现了后台运行的效果。但是进程后台运行后,原本在终端控制台输出的数据就看不到了。那么,怎样才能找回这些数据?

这里,文章主题就围绕着 如何获得后台进程的控制台数据,其中的原理要从daemon说起。

daemon主要做两件事:
1、创建子进程,退出当前进程,并且以子进程创建新会话。这样,就算父进程退出,子进程也不会被关闭
2、将标准输入,标准输出,标准错误都重定向/dev/null

daemon 实现大致如下:

int daemonize(int nochdir, int noclose)
{
  int fd;

  switch (fork()) {
  case -1:
    return (-1);
  case 0:
    break;
  default:
    _exit(EXIT_SUCCESS);
  }

  if (setsid() == -1)
    return (-1);

  if (nochdir == 0) {
    if(chdir("/") != 0) {
      perror("chdir");
      return (-1);
    }
  }

  if (noclose == 0 && (fd = open("/dev/null", O_RDWR, 0)) != -1) {
    if(dup2(fd, STDIN_FILENO) < 0) {
      perror("dup2 stdin");
      return (-1);
    }
    if(dup2(fd, STDOUT_FILENO) < 0) {
      perror("dup2 stdout");
      return (-1);
    }
    if(dup2(fd, STDERR_FILENO) < 0) {
      perror("dup2 stderr");
      return (-1);
    }

    if (fd > STDERR_FILENO) {
      if(close(fd) < 0) {
        perror("close");
        return (-1);
      }
    }
  }
  return (0);
}
所以,想取回进程的控制台数据,只要将标准输出,标准错误重定向到指定文件,然后读取这个文件就好了。

文章这里写了个例子,简单演示下(这里通过kill信号完成进程通信,有点粗暴)
代码如下,保存为 daemon_example.c
#include
#include
#include
#include

static int fd = -1;

void sigroutine(int dunno) {
  switch (dunno) {
  case SIGUSR1:
    fprintf(stderr, "Get a signal -- SIGUSR1 \n");
    if (fd != -1) close(fd);
    fd = open("/tmp/console_temp.log", O_RDWR|O_APPEND|O_CREAT, 0600);
    if (fd == -1) break;
    dup2(fd, STDIN_FILENO);
    dup2(fd, STDOUT_FILENO);
    dup2(fd, STDERR_FILENO);
    break;
    
  case SIGUSR2:
    fprintf(stderr, "Get a signal -- SIGUSR2 \n");
    if (fd != -1) close(fd);
    fd = open("/dev/null", O_RDWR, 0);
    if (fd == -1) break;
    dup2(fd, STDIN_FILENO);
    dup2(fd, STDOUT_FILENO);
    dup2(fd, STDERR_FILENO);
    break;
  }
  return;

}

int main() {
  signal(SIGUSR1, sigroutine);
  signal(SIGUSR2, sigroutine);

  daemon(1,0);
  for (;;){
      fprintf(stderr,"test \n") ; // 不断打印test
      sleep(1);
  }
  return 0;
}
然后,编译和执行这个程序:
$ gcc -o daemon_example daemon_example.c
$ chmod +x daemon_example
$ ./daemon_example
$ ps -ef| grep daemon_example
root 11328 1 0 19:15 ? 00:00:00 ./daemon_example
如上,进程后台运行了,拿到pid 11328

按ctrl+c 退出脚本,这时脚本会通知进程将标准输出和标准错误重定向到 /dev/null,继续后台运行。
[root@iZ25dcp92ckZ testdemo]# sh -x ./test.sh 16935  
+ pid=16935
+ ps -p 16935
+ '[' '!' 0 -eq 0 ']'
+ echo pid 16935
pid 16935
+ trap 'kill -usr2 16935 && exit 1' HUP INT QUIT TERM
+ kill -usr1 16935
+ echo it works,please wait..
it works,please wait..
+ sleep 1
+ tail -f -n 0 /tmp/console_temp.log
test
test
test
test
==========================================================
接着,写个脚本测试这个程序, 保存为test.sh:
#!/bin/bash

pid=$1
ps -p $pid>/dev/null
if [ ! $? -eq 0 ] ; then
  echo pid does not exist!
  exit 1
fi
echo pid $pid
trap "kill -usr2 $pid && exit 1" HUP INT QUIT TERM
kill -usr1 $pid
echo it works,please wait..
sleep 1
tail -f -n 0 /tmp/console_temp.log
echo done!
执行这个脚本,结果如下:
$ ./test.sh 11328
pid 11328
it works,please wait..
test
test
然后,按ctrl+c 退出脚本,这时脚本会通知进程将标准输出和标准错误重定向到 /dev/null,继续后台运行。
这样,这个脚本就成了后台进程的调试工具了,需要后台数据的时候执行一下,不需要就关闭。当然,这只是一个示例,实际应用中要做改善,比如kill信号改成pipe或socket通讯,缓存文件要限制大小,或自动清除等。

摘自:http://blog.csdn.net/mycwq/article/details/50479735
背景:发现用ansible去做sudo时,发现权限不够:
TASK [irdcops : 修改 /etc/sudoers] ***********************************************
skipping: [10.70.37.24]
fatal: [10.70.36.172]: FAILED! => {"changed": false, "failed": true, "msg": "Could not replace file: /tmp/tmpfToWiS to /etc/sudoers: [Errno 1] Operation not permitted"}
fatal: [10.70.36.173]: FAILED! => {"changed": false, "failed": true, "msg": "Could not replace file: /tmp/tmpvA5FJh to /etc/sudoers: [Errno 1] Operation not permitted"}


[root@v-szq-Localizationweb13 etc]# chmod 755 sudoers
chmod: changing permissions of `sudoers': Operation not permitted
[root@v-szq-Localizationweb13 etc]# lsattr sudoers
----i--------e- sudoers
[root@v-szq-Localizationweb13 etc]#  chattr -i sudoers
[root@v-szq-Localizationweb13 etc]# visudo

http://www.linuxeye.com/command/chattr.html







Form:http://jackxiang.com/post/1792/
随着时代的进步,女性在现代社会中所承担的责任和义务也越来越多,上有爹妈和公婆、下有孩子,时不时还要兼顾一下丈夫。面临工作上的压力和家庭中的重担,许多女性朋友都会忽视自身的健康.阅读全文
背景: 一个程序运行了多长时间,能用ps命令得出来,像系统运行多长时间可以用uptime,一样的道理。
最简单的这个命令:

实践如下:
ps -ef|grep mysql
root      4572     1  0 7月09 ?       00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe


摘自 :http://www.cnblogs.com/fengbohello/p/4111206.html

写个小脚本,根据传入的参数显示对应进程的启动时间

ps -p 25352 -o lstart|grep -v "START"
比如运行:./showProRunTime.sh mysql 显示mysql进程的启动时间:
/usr/local/sbin/showProRunTime.sh


/tmp/synrpm.sh synrpm2repos
root     53504  0.0  0.1 119240  6436 ?        Ss   Jul17   0:00 /usr/local/php/bin/php /usr/local/sbin/synrpm2repos.php --daemon Sun Jul 17 16:57:39 2016

启动时间是:Sun Jul 17 16:57:39 2016
___________________________以下是参数说明_____________________________________________

ps -eo lstart 启动时间
ps -eo etime   运行多长时间.


ps -eo pid,lstart,etime | grep 5176


有些时候我们需要知道某个进程的启动时间!
显示某PID的启动时间命令:

ps -p PID -o lstart  


如下面显示httpd的启动时间:

for pid in $(pgrep httpd); do echo -n "${pid}"; ps -p ${pid} -o lstart | grep -v "START"; done  
====================================================================================
在Linux下,如果需要查看进程的启动时间, 常用ps aux命令,但是ps aux命令的缺陷在于只能显示时间到年、日期、或者时间, 无法具体到年月日时分秒。如果需要查看某个进程的具体启动时间, 使用 ps -p PID -o lstart,  其中,PID为某个进程的进程ID号。

如下所示, 显示系统中所有httpd进程的具体启动时间。

如下所示, 显示系统中所有httpd进程的具体启动时间。

for pid in $(pgrep httpd); do echo -n "${pid} " ; ps -p ${pid} -o lstart | grep -v "START" ; done
301 Mon Aug 27 11:21:59 2012
344 Mon Aug 27 11:33:13 2012
25065 Sun Aug 26 03:27:03 2012
25066 Sun Aug 26 03:27:03 2012
25067 Sun Aug 26 03:27:03 2012
25068 Sun Aug 26 03:27:03 2012
25069 Sun Aug 26 03:27:03 2012
25070 Sun Aug 26 03:27:03 2012
25071 Sun Aug 26 03:27:03 2012
25072 Sun Aug 26 03:27:03 2012
27903 Wed Jun 20 22:50:47 2012
32767 Mon Aug 27 11:21:48 2012

来自:http://www.iteye.com/topic/1135810
分页: 12/247 第一页 上页 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 下页 最后页 [ 显示模式: 摘要 | 列表 ]