原始出處 、作者資訊和本宣告。否則將追究法律責任。
昨日寫了一篇關於「nohup後台執行程式」文章(修復「正確操作nohup讓程式始終在後台執行」中已發現的問題
),今天幫助開發人員具體解決了乙個問題。
註解:dump為研發人員開發的程式;
test.sh為測試nohup的指令碼,指令碼內容見20行-35行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
[root@ce340 gliver]
# killall dump
[root@ce340 gliver]
# ps -c test.sh
pid tty time cmd
15711 pts
/0
00:00:00
test
.sh
[root@ce340 gliver]
# killall test.sh
[1]+ terminated
nohup
.
/test
.sh >
/dev/null
2>&1
[root@ce340 gliver]
# nohup ./test.sh >/dev/null 2>&1 &
[1] 18531
[root@ce340 gliver]
# ps -c test.sh
pid tty time cmd
18531 pts
/0
00:00:00
test
.sh
19603 pts
/0
00:00:00
test
.sh
[root@ce340 gliver]
# ps -c dump
pid tty time cmd
17722 pts
/0
00:00:05 dump
[root@ce340 gliver]
# killall dump
[root@ce340 gliver]
# ps -c dump
pid tty time cmd
20837 pts
/0
00:00:00 dump
[root@ce340 gliver]
# cat ./test.sh
#!/bin/bash
while
:
do
if
[[ ! `
ps
-ef |
grep
dump |
grep
-
v
grep
` ]];
then
echo
"down"
#log to file
echo
"the deamon down at $(date)"
>>
/home/user/desktop/gliver/dump
.log
su
-l -c
"nohup /home/user/desktop/gliver/dump rtmp: >/dev/null 2>&1 &"
# start time
if
[[ ! `
ps
-ef |
grep
dump |
grep
-
v
grep
` ]];
then
echo
"the deamon start at $(date)"
>>
/home/user/desktop/gliver/dump
.log
fi
fi
usleep 1000
done
[root@ce340 gliver]
#
總結:當執行nohup時,並不是建立乙個當前程序的父程序,而是nohup能讓後面緊跟的命令忽略 hangup 訊號,通過忽略hup訊號來避免程序中途被中斷,正如執行pstree -npu或ps -ef的第三列展示的那樣。
其次nohup後面緊跟程序名,如果程序名所指向的程序接受引數,則程序名後面跟著的引數將傳入程序名所指向的程序,否則將被丟棄,但重定向似乎是個例外,重定向不僅會作用於nohup本身又能作用於程序名指向的程序。
ps:一旦使用nohup,就不能使用「kill -hup pid」,而是要使用「killall 程序名稱」殺死程序。
本文出自 「通訊,我的最愛」 部落格,請務必保留此出處
深入了解nohup
昨日寫了一篇關於 nohup後台執行程式 文章 修復 正確操作nohup讓程式始終在後台執行 中已發現的問題 今天幫助開發人員具體解決了乙個問題。註解 dump為研發人員開發的程式 test.sh為測試nohup的指令碼,指令碼內容見20行 35行。root ce340 gliver killall...
深入了解A
一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...
深入了解A
一 前言 在這裡我將對a 演算法的實際應用進行一定的 並且舉乙個有關a 演算法在最短路徑搜尋的例子。值得注意的是這裡並不對a 的基本的概念作介紹,如果你還對a 演算法不清楚的話,請看姊妹篇 初識a 演算法 這裡所舉的例子是參考amit主頁中的乙個源程式,使用這個源程式時,應該遵守一定的公約。二 a ...