0

Cakephp 2.x を使用しており、cron でシェルを実行したいと考えています。

シェルをバックグラウンド プロセスとして実行する目的は、多数のデータを含む XML ファイルを生成することです。

.bashrc ファイルで PATH 変数を path/to/app/Console に設定しました。また、/app/Console/cakeshell に cakeshell ファイルを作成し、cakephp 2.x のドキュメントで説明されているように実行可能にしました。また、/app/Console/Command/myjobShell.php 内にシェルを作成しました。

ケーキシェルのコードは次のとおりです。

#!/bin/bash
TERM=dumb
export TERM
cmd="cake"
while [ $# -ne 0 ]; do
    if [ "$1" = "-cli" ] || [ "$1" = "-console" ]; then
        PATH=$PATH:$2
        shift
    else
        cmd="${cmd} $1"
    fi
    shift
done
$cmd

注:cmd='cake'をフルパスに変更しましたcmd='/path/to/app/Console/cake'

私が使用したcron構文は次のとおりです。

* * * * * /path/to/cakeshell myjob -cli /usr/bin -console /path/to/app/Console

cron デーモンが正常に動作していることをサーバーで確認しました。しかし、ケーキシェルが機能していないようです。

また、シェルを使用せずに cron を介して直接 /controller/action を実行することについて誰かが言及している場合も、解決策になる可能性があります。しかし、それが実現可能かどうかはわかりません。

4

0 に答える 0