我有一个脚本/etc/init.d/startup
,在那里我做到以下几点:
/var/run/**startup**.pid
在服务器运行的时候,我没有任何问题,但是当它启动时,它会创buildPIDfile和屏幕,其名称不正确:
/var/run/**S92startup**.pid 2058.**S92startup** (11/10/2014 03:56:31 PM) (Detached)
如何在启动时指定脚本的名称? (而不是/etc/rc2.d/
中的符号链接的名称)
现在我的脚本看起来像这样开始,这就是我得到脚本的名字
SCRNAME=${0##*/} DAEMON="screen -DmS $SCRNAME /srv/startup/scripts/gprs.sh" PIDFILE=/var/run/$SCRNAME.pid
PS:它是正确的,当我在服务器上,执行“服务启动启动”,而不是在启动时。
问题是当脚本被符号链接调用时, $0
被设置为符号链接而不是原始脚本。
你可以这样做:
SCRNAME=$(readlink "$0" || echo $0) SCRNAME=${SCRNAME##*/}
如果源是链接, readlink
将打印链接目标。