linux程序改名

2021-07-24 18:36:28 字數 2035 閱讀 1975

在多程序程式中,用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 ...