質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

833閲覧

Linuxの起動時に実行ファイルを実行する方法

tokotaku

総合スコア63

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2022/04/11 05:28

編集2022/04/11 06:11

VirtualBoxを利用してubuntuを起動した際に、とある実行ファイルを実行したいのですがうまくできません。
試した方法は
・rc.localから実行
・.config/autostart/gnome-terminal.desktopを利用してターミナル経由で起動
の2つです。

実行したいファイルは以下のように、
ただ「Hello World」を表示のと、ファイル出力するだけの簡単なコンソールアプリです。

C言語

1#include <stdio.h> 2#include <stdlib.h> 3int main(void) 4{ 5printf("Hello World!\n"); 6 7FILE *fp; 8fp = fopen("test.text", "w"); 9fprintf(fp, "Hello World!\n"); 10fclose(fp); 11 12return 0; 13}

これらのファイルのルートは
"/home/name/Test/"
となっており、Testディレクトリの中身は
/hello.c
/a.out
のみとなっております。

rc.localで行った際は

rc.local

1#!/bin/sh -e 2# 3# rc.local 4# 5# This script is executed at the end of each multiuser runlevel. 6# Make sure that the script will "exit 0" on success or any other 7# value on error. 8# 9# In order to enable or disable this script just change the execution 10# bits. 11# 12# By default this script does nothing. 13 14chmod 755 /etc/rc.local 15sudo /home/sni/NTP/a.out & 16 17exit 0

と追記して再起動をしてみたところ、何も動きがありませんでした。
また、ps -xでプロセスを確認してみましたがそこにもありませんでした。

.config/autostart/gnome-terminal.desktop で行った際は

[Desktop Entry] Exec=gnome-terminal -e "/home/name/Test/a.out" Type=Application

と記述して再起動しましたが、やはり動きがありませんでした。

他の方法なども模索しているのですが、なかなかうまく見つけられません。
なぜうまくいかないのか、何か別の方法はないのか、ご教授お願い致します。

また、実行環境は
・VirtualBox 6.1
・ubuntu 14.04.6 LTS
・gcc 4.8.4
です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sigsegv

2022/04/11 05:59

そのプログラムでは何もせずすぐに終了するので、動いたかどうか確認できないのでは a.out の中でファイルを作るようにしてみては?
tokotaku

2022/04/11 06:13

実行権限をどこに記述するのかわからなかったので、メイン処理の前に記述しましたがこれで正しいのでしょうか? また、プログラムでテキストファイルを出力するようにして実行してみましたが、だめでした。 起動後にターミナルから実行してみたら、正常に生成&正しい内容でした。
tokotaku

2022/04/11 06:27

連投すみません、うまくできました。
guest

回答1

0

自己解決

コード上のパスが存在しないものになっていたようです。
恐らく実行権限関連だと思います。
動かすことができました、ありがとうございます。

投稿2022/04/11 06:27

tokotaku

総合スコア63

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問