下記の、/etc/init.d/vsftpdをstartしたところ、プロセスは起動するのですが、pidファイル(/var/run/vsftpd/vsftpd.pid)が作成されません。
他のデーモンは/var/run配下にpidファイルが作成されるのですが、何故かvftpだけ、pidファイルが作成されません。
原因について、ご教授をお願い申し上げます。
#!/bin/sh ### BEGIN INIT INFO # Provides: vsftpd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Very secure FTP server ### END INIT INFO set -e DAEMON="/usr/sbin/vsftpd" NAME="vsftpd" PATH="/sbin:/bin:/usr/sbin:/usr/bin" LOGFILE="/var/log/vsftpd.log" CHROOT="/var/run/vsftpd/empty" test -x "${DAEMON}" || exit 0 if [ ! -e "${LOGFILE}" ] then touch "${LOGFILE}" chmod 640 "${LOGFILE}" chown root:adm "${LOGFILE}" fi if [ ! -d "${CHROOT}" ] then mkdir -p "${CHROOT}" fi Check_standalone_mode () { # Return 1 if vsftpd.conf doesn't have listen=yes or listen_ipv6=yes # (mandatory for standalone operation). CONFFILE="/etc/vsftpd.conf" if [ -e "${CONFFILE}" ] && ! egrep -iq "^ *listen(_ipv6)? *= *yes" "${CONFFILE}" then echo "${CONFFILE}: listen disabled - service will not start" return 1 fi } case "${1}" in start) Check_standalone_mode || exit 0 echo -n "Starting FTP server: " start-stop-daemon --start --background -m --oknodo --pidfile /var/run/vsftpd/vsftpd.pid --exec ${DAEMON} echo "${NAME}." ;; stop) echo -n "Stopping FTP server: " start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --oknodo --exec ${DAEMON} rm -f /var/run/vsftpd/vsftpd.pid echo "${NAME}." ;; restart) echo -n "Stopping FTP server: " start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --oknodo --exec ${DAEMON} rm -f /var/run/vsftpd/vsftpd.pid echo "${NAME}." Check_standalone_mode || exit 0 echo -n "Starting FTP server: " start-stop-daemon --start --background -m --pidfile /var/run/vsftpd/vsftpd.pid --exec ${DAEMON} echo "${NAME}." ;; reload|force-reload) echo "Reloading FTP server configuration: " start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --signal 1 --exec $DAEMON echo "${NAME}." ;; status) PID="$(cat /var/run/vsftpd/vsftpd.pid 2>/dev/null)" || true if [ ! -f /var/run/vsftpd/vsftpd.pid ] || [ -z "${PID}" ] then echo "${NAME} is not running" exit 3 fi if ps "${PID}" >/dev/null 2>&1 then echo "${NAME} is running" exit 0 else echo "${NAME} is not running" exit 1 fi ;; *) echo "Usage: /etc/init.d/${NAME} {start|stop|restart|reload|status}" exit 1 ;; esac exit 0
環境
- vsftpd : 3.0.2-17
- OS : Debian 8.11
vsftpdディレクトリが存在しているかとvsftpdディレクトリの権限が何になっているか教えていただいても宜しいでしょうか。
ありがとうございます。ディレクトリは作成されており、権限は下記のようになっています。drwxr-xr-x 3 root root 80 Aug 31 15:05 vsftpd
ありがとうございます。root権限で755なのでroot以外でsrartした場合pid作成できなそうです。現在のvsftpdをstartしているユーザを確認していただく&chmod 777 vsftpdすればpid作られそうな気がします。
ありがとうございます。実行ユーザはrootなので、権限の問題ではないようです。また、別の機器にvfsftpdを再構築して、起動させたところ、pidファイルが作成されているので、スクリプトの問題でもなさそうです。構築中になにかゴミファイルが混じってしまった?のかもしれません
回答2件
あなたの回答
tips
プレビュー