추가 읽기

추가 읽기
status -p $pidfile -l $lockfile $prog

이 명령은 CentOS - /bin/sh 쉘용입니다.

/bin/bash그러나 쉘(또는 또한)을 사용하여 zshUbuntu 14.04에서 동일한 명령을 실행 하려고 하면 오류가 발생합니다.

status: invalid option: -p
Try `status --help' for more information.

statusUbuntu에서 pidfile 위치 매개변수를 명령에 어떻게 전달할 수 있나요 ?

답변1

상태 -p $pidfile -l $lockfile $prog

이는 RHEL/CentOS 6의 셸 기능입니다 status(). 그것은 또한 불린다/etc/rc.d/init.d/functionsstatusproc()처음부터 리눅스세계.

이는 당신이 하고 있는 일이 매우 잘못되었음을 알려줍니다. rc일반적인 대화형 쉘 외부 명령과 함께 System 5 스크립트에서 사용할 수 있는 특수 쉘 도우미 기능을 혼동하고 있습니다 . rcUbuntu에서 System 5 스크립트를 작성하고 있습니다 . 그리고 PID 파일과 잠금 파일을 사용하고 있습니다.

  • PID 파일을 사용하지 마세요가난한 사람의 서비스로 추적합니다. 잠금 파일을 사용하지 마세요가난한 사람들을 위한 서비스도 서로 연결되어 있습니다. 각각 upstart 및 systemd가 있는 Ubuntu Linux 버전 14 및 15에서는 전혀 필요하지 않습니다. 불안정한 PID 파일과 잠금 파일이 필요하지 않습니다. systemd와 upstart 모두 동일한 서비스가 두 번 시작되지 않도록 보장하고, 처음에 해당 프로세스를 포크했기 때문에 서비스 프로세스의 프로세스 ID를 올바르게 추적합니다. 이로 인해 다음과 같은 생각이 들었습니다.
  • rcUbuntu Linux에서는 System 5 스크립트를 작성 하지 마십시오 .버전 14에는 이미 시작이 있었고 버전 15에는 CentOS 7, RHEL 7 및 Debian 8과 마찬가지로 systemd가 있습니다 rc. 오랫동안 Ubuntu Linux에서 System 5 스크립트를 작성할 이유가 없었습니다. 아직 하나 있어요틀림없이Ubuntu Linux로 돌아가는 경우 거기서 시작해서는 안 됩니다. (실수로) rcCentOS에서 System 5 스크립트를 가져오려고 했기 때문에 여기에서 시작한 경우에도 다음과 같습니다 .
  • status()쉘 기능 에 의존하지 마십시오운영 체제 전반에 걸쳐 또는 동일한 운영 체제의 다른 버전에서도 가능합니다. 앞서 언급했듯이 LFS에서는 다른 이름을 가지고 있습니다. 이는 Fedora 2009의 "새로운" LSB 지원 기능이 아닙니다. 해당 함수에는 강제된 statusSystem 5 스크립트 작업도 없습니다 rc.데비안 정책 매뉴얼첫째, LSB 도우미 셸 라이브러리에는 (약간 다른) 도우미 기능이 있습니다 status_of_proc().

Ubuntu 버전 14의 경우 시작 "작업 파일"을 작성하거나 CentOS 7, RHEL 7, Debian 8 또는 Ubuntu 15의 경우 시스템 "서비스 단위"를 작성합니다. upstart와 systemd는 각각 ( initctl status라는 간단한 shim을 사용하여 status) 및 systemctl status, 서비스 상태 명령을 제공합니다 . 업무 서류 또는 서비스 단위에서 지원당신은 아무것도 할 필요가 없습니다.

추가 읽기

답변2

CentOS 6.5의 버전은 status패키지에서 0.6.5입니다 upstart. Ubuntu 14.04의
버전은 status1.12.1이며 패키지에도 있습니다 upstart.

이들 중 어느 것도 이 -p옵션을 허용하지 않습니다.

Upstart에서는 status어떤 방식으로든 PIDFILE을 지정할 수 없습니다. 작업을 지정하고 스크립트에 전달할 key=value 매개변수를 제공합니다. 다른 명령줄 옵션을 볼 수 있습니다 status --help.

CentOS 7은 더 이상 Upstart(systemd로 전환)를 사용하지 않기 때문에 CentOS 7에는 없습니다 status(적어도 내 설치에는 없음). 어떤 패키지가 statusCentOS( yum whatprovides $(which status))에 패키지를 제공하는지 알아보고 Ubuntu에 설치할 수 있는지 확인하여 대체 상태를 얻을 수 있습니다(충돌하지 않는 다른 이름도 가능하기를 바랍니다).

관련 정보