GNU/Linux >> Belajar Linux >  >> Ubuntu

Mengapa Skrip Ini Berjalan Su Sepertinya Tidak Pernah Berhenti Jika Saya Mengubah Pengguna Di Dalam Skrip?

Saya memiliki skrip bash yang sangat sederhana dengan 5 perintah yang berjalan di bawah pengguna root. Jika saya menjalankan perintah secara manual satu per satu semuanya bekerja – tidak ada masalah. Tetapi ketika saya menjalankannya sebagai file my-deploy.sh melalui perintah

bash /root/custom-scripts/deploy/my-deploy.sh 2>> /var/log/www-deploy/tatrytec.eu.log

sepertinya proses tanpa akhir. Berikut scriptnya:

#!/bin/bash
# Run this script as bash command like: bash create-apache-site.sh

cd /var/www/html/tatrytec.eu

git pull

# Change user bacause of composer install warrning
su vlado

composer install  --no-scripts

npm install --production

Itu mulai berjalan dan saya bisa melihat hasil dari git pull in terminal. Tapi kemudian mati tanpa kesalahan dan masih berjalan. Saya bisa menghentikannya melalui ctrl+Y. Saya merasa ada yang salah dengan pengguna itu tetapi seperti yang saya tulis sebelumnya jika saya menjalankan perintah satu per satu itu berfungsi. Saya tidak paham. Dapatkah seseorang memberitahu saya apa yang bisa menjadi masalah? Terima kasih.

Jawaban yang Diterima:

Anda sepertinya ingin menjalankan baris terakhir dalam skrip Anda sebagai pengguna vlado. Ada cara bersih untuk melakukannya:

sudo -u vlado  your_command 

Jadi beberapa baris terakhir skrip Anda akan terlihat seperti ini:

sudo -u vlado composer install --no-scripts
sudo -u vlado npm install --production

Ubuntu
  1. Mengapa "Sudo Su" Dalam Skrip Shell Tidak Menjalankan Skrip Lainnya Sebagai Root?

  2. Mengapa Pengguna Root Membutuhkan Izin Sudo?

  3. Mengapa Cara Berikut Tidak Mengubah Ukuran Batas File Inti?

  1. Ubuntu – Bagaimana Agar Pam_exec Menjalankan Script Sebagai Pengguna Saat Ini?

  2. Jika Saya Mengubah Izin Pada File Tar, Apakah Itu Berlaku Untuk File Di Dalamnya?

  3. Jalankan Script Dengan Argumen Sebagai Pengguna?

  1. Mengapa Ubuntu Terus Meminta Kata Sandi Gmail?

  2. Mengapa Script Ini Untuk Menghapus Bagian Dari Riwayat Perintah Bekerja Di Komputer?

  3. Bagaimana Proses Upgrade Ubuntu Bekerja?