次のクローンファイルがあります
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
LOG_DIR=/var/log/myapp-services-cron
MYAPP_SERVICES_DIR=/opt/myorg/apps/myapp-services
* * * * * myappcron node $MYAPP_SERVICES_DIR/scripts/processor.js &>> $LOG_DIR/processor.log 2>&1
これは以下によって作成されました。速度仕様文書
Summary: Utility for testing RPM creation
Name: utils
Version: 1.0.0
Release: 1
License: GPL
URL: http://www.both.org
Group: System
Packager: Rajkumar Natarajan
Requires: bash
Requires: nodejs >= 8.1.2
BuildRoot: ~/rpmbuild/
%description
A collection of utility scripts for testing RPM creation.
%prep
################################################################################
# Create the build tree and copy the files from the development directories #
# into the build tree. #
################################################################################
echo "BUILDROOT = $RPM_BUILD_ROOT"
%pre
%build
%install
sudo mkdir -p /etc/cron.d
sudo mkdir -p /var/log/myapp-services-cron
sudo mkdir -p /var/lock/myapp-services-cron
sudo mkdir -p /opt/myorg/apps/myapp-services
sudo cp -r /home/vagrant/cron-demo %{buildroot}/
sudo cp -r %{buildroot}/cron-demo/crontab /etc/cron.d/myapp-services-cron-scripts
sudo cp -r %{buildroot}/cron-demo/scripts /opt/myorg/apps/myapp-services/
%post
%files
/cron-demo/
%postun
%clean
sudo rm -rf %{buildroot}/
%changelog
cronファイルは毎分nodejsスクリプトを呼び出します。しかし、どういうわけかcronは実行されません。
オペレーティングシステムの詳細は次のとおりです。
$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.5.1804 (Core)
Release: 7.5.1804
Codename: Core
ユーザーmyappcronを作成しました。 Nodejsとスクリプト/プロセッサも正しい場所にあります。
cronが実行されない理由をご存知ですか?
答え1
この部分が何を意味するのかを混乱させるでしょう%install
。
各部
- %準備する
- %立てる
- %インストールする
- %確認する
コンピュータで実行立てるこれはrpm
rpmがインストールされているシステムにはありません。あなたはする必要があります絶対sudoを使用しないでください仕様ファイルに。たぶんあなたは次のようなものが欲しいかもしれません。 (私はcron.dファイルの部分だけを書いたので、必要な他のファイルを推論することができます。)
%install
mkdir -p %{buildroot}/etc/cron.d
cp -r /cron-demo/crontab %{buildroot}/etc/cron.d/myapp-services-cron-scripts
%files
/etc/cron.d/myapp-services-cron-scripts