[Çözüldü] C kodu içerisinden terminal komutuna çağrı yapılır mı?

Başlatan jeykey, 24 Ağustos 2015 - 15:23:39

« önceki - sonraki »

0 Üyeler ve 2 Ziyaretçi konuyu incelemekte.

jeykey

Merhabalar.
Teknik serviste anapc miz linux.Fakat anakartın hotswap desteği yok.Ben Diski taktıktan sonra terminal kodlarını çalıştırabileceğim yani o komutlara çağrı yapabileceğim bir yöntem var mı.Bu işi bash veya daha basit bir sistem ile yapabileceksem önerilere açığım.Çalıştıracağım komutlar şunlar;


sudo echo "- - -" > /sys/class/scsi_host/host0/scan
sudo echo "- - -" > /sys/class/scsi_host/host1/scan
sudo echo "- - -" > /sys/class/scsi_host/host2/scan
sudo echo "- - -" > /sys/class/scsi_host/host3/scan

Ben bash ile şu şekilde yapmaya çalıştım fakat sorun çıktı;
#!/bin/bash
sudo su
sudo echo "- - -" > /sys/class/scsi_host/host0/scan
sudo echo "- - -" > /sys/class/scsi_host/host1/scan
sudo echo "- - -" > /sys/class/scsi_host/host2/scan
sudo echo "- - -" > /sys/class/scsi_host/host3/scan
STRING="DİSK LİSTESİ"
cat /sys/class/scsi_disk/*/device/model

iskenderoguz

c kodu içerisnde linux kodlarını system() fonksiyonu ile çalıştırabilirsin
örneğin system("ls");

aynı şekilde script te çalıştırabilirsin
system("/home/user/Desktop/deneme.sh");

http://www.tutorialspoint.com/c_standard_library/c_function_system.htm

heartsmagic

Merhaba.



Alıntı yapılan: jeykeyBen bash ile şu şekilde yapmaya çalıştım fakat sorun çıktı;
Kod: [Seç]#!/bin/bash
sudo su
sudo echo "- - -" > /sys/class/scsi_host/host0/scan
sudo echo "- - -" > /sys/class/scsi_host/host1/scan
sudo echo "- - -" > /sys/class/scsi_host/host2/scan
sudo echo "- - -" > /sys/class/scsi_host/host3/scan
STRING="DİSK LİSTESİ"
cat /sys/class/scsi_disk/*/device/model

Sorun sudo ve echo kısmındadır büyük ihtimalle. sudo kullandığın için bu betiği root ile değil, sudo yetkisine sahip bir kullanıcı ile yürüttüğünü varsayalım. Öncelikle:
sudo su
kısmına hiç gerek yok. Eğer root'a geçip yapayım diyorsan uçbirimde:
sudo -i
yürütür, root kullanıcısı olur, betiği şu şekilde hazırlarsın:

#!/bin/bash
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
echo "- - -" > /sys/class/scsi_host/host3/scan
STRING="DİSK LİSTESİ"
cat /sys/class/scsi_disk/*/device/model


Eğer sudo yetkisi olan bir kullanıcı ile yapacaksan şöyle kullan:

#!/bin/bash
echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan
echo "- - -" | sudo tee /sys/class/scsi_host/host1/scan
echo "- - -" | sudo tee /sys/class/scsi_host/host2/scan
echo "- - -" | sudo tee /sys/class/scsi_host/host3/scan
STRING="DİSK LİSTESİ"
cat /sys/class/scsi_disk/*/device/model


Burada dosyaların ezileceğini varsayıyorum zira sen betikte > kullanmışsın.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

-DıLgEş-

Açıkçası bir scripte koyup C ile çağırsan daha iyi olur.
Aşkın; gözü kör, kulağı sağır, dili tutuk, aklı kıttır..! Hayır yani bu halde nasıl herkesi madara ediyor onu çözemedim..

jeykey

Hepinize kıymetli öneri ve yardımlarınız için çok çok teşekkür ediyorum.

heartsmagic

@jeykey, eğer sorun çözüldüyse şöyle bir uygulamamız mevcut: cozuldukonusu
Bir de, sorunu nasıl çözdüğünü örneklersen sonradan aynı sorunlar karşılaşacak kullanıcılara da fayda sağlamış olursun.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.