今天用指令碼來獲取程序id,並給相應程序傳送乙個訊號,
shell命令獲得程序id的方法有三種:
1.ps -a |grep "cmdname"| awk ''
2.pidof "cmdname"
3.pgrep "cmdname"
注意,這裡cmdname的雙引號不要。
這三種在bash和busybox ash裡面的執行結果稍有不同,
第一種完全相同,但是因為呼叫命令次數較多,效能上是不行的。
第二種: pidof 只能獲取程式的檔名匹配到的程序號,在ash中 比如 pidof "usr/bin/telnetd" 和 pidof "telnetd"中結果不一樣, 前一種結果為空,但是在bash中執行兩者一樣。
第三種: pgrep跟1的效果相同,因為是單一命令,比第一種效能要好得多。
在shell檔案中編寫時,一般是
#! /bin/bash
process_id=`grep "cmdname"`
kill -sigusr1 process_id
注意,在shell中,命令的執行是"`",這個符號在和~在同一按鍵上,而不是單引號,否則給變數的值是命令字串,而不是命令執行的結果。
這個簡單的shell指令碼用來向cmdname這個程序傳送乙個使用者自定義的訊號
在cmdname程序中只要 sigaction()函式,指定相應的訊號處理函式即可
nohup 命令輸出到指定檔案
在linux中執行命令行時,會輸出一些日誌資訊,特別典型的是啟用weblogic命令時,輸出一些資訊,當啟用demon模式執行時,又想收集這些資訊咋辦?解決的辦法就是使用輸出重定向,如下面的命令 nohup run log 2 1 其中log是儲存輸出的檔名稱 2 1 表示不僅命令列正常的輸出儲存到...
頁面輸出到EXCEL
其實,利用asp.net輸出指定內容的word excel txt htm等型別的文件很容易的。主要分為三步來完成。一 定義文件型別 字元編碼 response.clear response.buffer true response.charset utf 8 filename fileflow.x...
c 除錯輸出到輸出視窗
首先新增預處理定義 crt secure no warnings 例子 除錯輸出 d和 d n 123,500 void 除錯輸出 const char stroutputstring,va list vlargs va start vlargs,stroutputstring vsnprintf ...