写个脚本:vi lalal.sh
#!/bin/bach
while true
do
echo 'i love you baby baby.......'
sleep 1
done
给脚本赋予执行权限:chmod +x lalal.sh
在前台运行:./lalal.sh
后台运行脚本
在后台运行:./lalal.sh & 注意: 后台运行无法通过Ctrl+c等方法停止。需要关闭窗口(root用户可能无法关闭)或者克隆窗口:ps -ef | grep lalal 查看后得到进程号。→kill -9 进程号
例如:
[hadoop@sure data_log]$ ps -ef|grep write.sh
hadoop 4734 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 4991 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 5279 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 5984 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 7216 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 7253 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 8409 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 8483 1986 0 10月16 pts/0 00:00:02 sh write.sh
hadoop 10294 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 11394 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 11688 1986 0 10月16 pts/0 00:00:00 sh write.sh
hadoop 12847 1986 0 00:06 pts/0 00:00:00 sh write.sh
hadoop 12880 3512 0 00:06 pts/2 00:00:00 grep --color=auto write.sh
[hadoop@sure data_log]$ kill -9 12847
解决方法:标准输出重定向(1就是标准输出。>为定向后加定向后的路径。2表示错误输出的报错内容)
例如:./lalal.sh 1>/root/lalal.log 2>/root/lalal.err &
正在运行中的脚本停止:jobs显示正在运行的脚本→fg1 前台显示 →Ctrl+c
如果不需要保存输出的内容(输出到“黑洞”/dev/null):./lalal.sh 1>/dev/null 2>&1 & (&1表示引用1的路径)
防止用户退出程序停止:nohup ./lalal.sh 1>/dev/null 2>&1 &