在多程序程式中,用ps命令能看到程序的名字。這樣能夠方便管理,不會因為看到好多同樣的程序而不知道他們在幹什麼而茫然,同時也能避免管理員kill掉錯誤的程序。原文:小宇的部落格
比如postgresql剛啟動時共有7個程序,通過ps可以清楚的看到每個程序是幹什麼的。
$ ps ax | grep postgres
26300 pts/26 s 0:00 ./postgres -d ../data
26301 ? ss 0:00 postgres: logger process
26303 ? ss 0:00 postgres: checkpointer process
26304 ? ss 0:00 postgres: writer process
26305 ? ss 0:00 postgres: wal writer process
26306 ? ss 0:00 postgres: autovacuum launcher process
26307 ? ss 0:00 postgres: stats collector process
那麼在linux下是如何做到程序改名的呢?
#include#include
#include
#include
int main(int argc, char *argv)
yshen@yshen-office:~/test/procname
$ ./main &
[2] 26903
yshen@yshen-office:~/test/procname
$ ps
pidttytime
cmd26903 pts/1400:
00:00 main
yshen@yshen-office:~/test/procname
$ ps ax | grep hello
26903 pts/14s0
:00 hello
問題:ps不起效果,ps ax才能看到。不知到為啥。
其實postgresql中就是用的這種方法,詳見ps_status.c這個檔案。
需要linux 2.1.57版本以上。
#include
#include
#include
#include
#include
#include
#include
#include
char *progname = null;
void setproctitle(char *title)
char *getproctitle(void)
return ret;
}int main(int argc, char *argv)
case -1:
default:
}return
0;}
$ ./main &
[1] 26917
$ ps
pidttytime
cmd16399 pts/1400:
00:00 bash
25668 pts/1400:
00:02 gedit
26917 pts/1400:
00:00 ./main2: parent
26918 pts/1400:
00:00 ./main2: child
$ ps ax | grep main
26917 pts/14s0
:00 ./main
26918 pts/14s0
:00 ./main
問題:ps ax不起效果,ps 看到。不知到為啥。
看來綜合用這兩種方法才行啊。
Linux命令改名(alias 簡單使用)
命令起名格式 alias 新名字 原命令 注意中間不要有空格否則無效注 當終端重啟此命令無效。對命令起新名字 root localhost alias clc clear 檢視命令別名 root localhost alias alias clc clear aliascp cp i alias e...
Linux虛擬機器網絡卡改名方法
因為虛擬機器的配置是需要通過其他初始化指令碼來生成的,所以網絡卡的裝置名不能改變,如果需要把eth3修改為eth0 以rhel6為例,把以下檔案作修改如下 1 把eth0 eth1 eth2的相關行刪除掉 2 把eth3的相關行保留,並把eth3改為eth0即可。root ovm0246 vim e...
mysql 庫改名 Mysql資料庫改名
bin bash mysql資料庫改名,官方沒有直接修改資料庫名稱的命令 只有通過修改表名方式實現 source etc profile 載入系統環境變數 source bash profile 載入使用者環境變數 set o nounset 引用未初始化變數時退出 mysqlconn mysql ...