如何在unix中创建任意脚本
复制代码
nohup yourScript.sh script args&
nohup命令允许你关闭shell会话而不杀死脚本,而&将脚本放在后台,这样你就可以得到she
你可以使用nohup和&运算符守护Unix中的任何可执行文件: 复制代码 nohup yourScript.sh script args& nohup命令允许你关闭shell会话而不杀死脚本,而&将脚本放在后台,这样你就可以得到shell提示来继续你的会话。 它的输出将在这个庄园intertwined,这样带来唯一的小问题是标准输出和标准错误都被送到了把/nohup 。出来所以如果你启动几个 scripts. 更好的命令是: 复制代码 nohup yourScript.sh script args> script.out 2>script.error& 这将把标准输出到你选择的文件,并将标准错误发送给你选择的其他文件。 如果你想只使用一个文件为标准输出和标准错误unix脚本,你可以: 复制代码 nohup yourScript.sh script args> script.out 2>&1 & 2> & 1 通知shell将标准错误( 文件描述符 2 ) 重定向到与标准输出( 文件描述符 1 ) 相同的文件。 要只运行一次命令并重新启动它,可以使用这里脚本: 复制代码 #!/bin/bashif [[ $# echo"Name of pid file not given." exitfi# Get the pid file's name.PIDFILE=$1 shiftif [[ $# echo"No command given." exitfiecho"Checking pid in file $PIDFILE."#Check to see if process running.PID=$(cat $PIDFILE 2>/dev/null)if [[ $? = 0 ]]; then ps -p $PID>/dev/null 2>&1 if [[ $? = 0 ]]; then echo"Command $1 already running." exit fifi# Write our pid to file.echo $$> $PIDFILE# Get command.COMMAND=$1 shift# Run command until we're killed.while true; do $COMMAND"$@" sleep 10 # if command dies immediately, don't go into un-ctrl-c-able loopdone 第一个参数是要使用的pid文件的名称。 第二个参数是命令。 所有其他参数都是命令的参数。 如果你将这里脚本命名为 restart.sh,这就是你将如何调用它: 复制代码 nohup restart.sh pidFileName yourScript.sh script args> script.out 2>&1 & (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |