/** * Trying to lock when previous launch of our app crashed * and left a lock file intact * * @covers Yeriomin\ConsoleApp\Lock::lock */ public function testLockOtherProcess() { file_put_contents($this->testFileName, '99999999'); $this->object->lock($this->testFileName); $this->assertFileExists($this->testFileName); $this->assertEquals(getmypid(), file_get_contents($this->testFileName)); }
private function loadVars() { if (!$this->lock->lock()) { return; } if (!shm_has_var($this->memory, self::SID_VARS)) { $this->varNames = []; shm_put_var($this->memory, self::SID_VARS, $this->varNames); } else { $this->varNames = shm_get_var($this->memory, self::SID_VARS); } $this->lock->unlock(); }
// composer autoload require_once __DIR__ . '/vendor/autoload.php'; // define the parent folder of this file as base path define("BASE_PATH", dirname(__FILE__)); // check for a config file if (file_exists(BASE_PATH . '/config.php')) { require_once BASE_PATH . '/config.php'; } else { trigger_error("AIESEC-Customer.io-Connector is missing a config file", E_USER_ERROR); die; } // instantiate KLogger (we don't catch anything here, because we can not do anything about it) $log = new \Katzgrau\KLogger\Logger(LOG, LOGLEVEL); $log->log(\Psr\Log\LogLevel::INFO, "AIESEC-Customer.io-Connector is starting."); // try to get lock $pid = Lock::lock($log); // check if we got the lock if ($pid < 1) { // there is a problem or another process running. Shutdown... $log->log(\Psr\Log\LogLevel::INFO, "AIESEC-Customer.io-Connector didn't got the lock. This instance is shutting down..."); } else { // we got the lock, so check that data directory is writeable if (!file_exists('./data') || !is_writeable('./data')) { die("data directory must be writeable"); } //try to run the core and sync once try { $core = new Core($log); if ($core) { $core->run(); }
/** * Tests unlock(). * * @see Lock::unlock() */ public function testUnlock() { $name = __FUNCTION__; $checkLock = new Lock($name); $lock = new Lock($name); $lock->lock(); $lock->unlock(); $this->assertTrue($checkLock->nonblockingLock()); $checkLock->unlock(); }
<?php require_once '../shell.php'; if (isset($_POST['ID'])) { $id = $_POST['ID']; $lock = new Lock($id); if ($lock->isLocked()) { $lock->unlock(); $command = escapeshellcmd("python /var/www/python/clear.py"); echo $command; $output = shell_exec($command); echo "Output: {$output} <br>"; } else { $lock->lock(); $command = escapeshellcmd("python /var/www/python/LightsHandler.py allamb on"); echo $command; $output = shell_exec($command); echo "Output: {$output} <br>"; } }
<?php set_time_limit(0); $start_time = time("now"); require_once 'lib/config.php'; require_once 'lib/ebay/selling.php'; require_once 'lib/item.php'; if (isset($_GET['user_id'])) { $users = array(DB::query_row("SELECT * from ebay_users where `user_id`='{$_GET['user_id']}'")); $lock_file = LOCK_FILE . '_' . $_GET['user_id']; } else { $users = DB::query_rows("SELECT * from ebay_users"); $lock_file = LOCK_FILE . ''; } if (!Lock::lock($lock_file, "LOCK", 0 * 3600)) { die('Another instance is already running: ' . Lock::get_msg($lock_file)); } Log::push('----- Cron job started -----'); foreach ($users as $user) { $user_id = $user['user_id']; $DEVNAME = trim($user['dev_name']); $APPNAME = trim($user['app_name']); $CERTNAME = trim($user['cert_name']); $paypal_email = trim($user['paypal_address']); $token = decrypt($user['token']); /* Relisting inactive items */ $items = EbaySelling::get_items('UnsoldList'); foreach ($items as $num => $ebay_item) { if (!empty($_GET['num']) && $_GET['num'] != $num) { continue; }